{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Atari 游戏 BreakoutDeterministic-v4"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "2019-01-01 10:02:23,036 [DEBUG] Loaded backend module://ipykernel.pylab.backend_inline version unknown.\n"
     ]
    }
   ],
   "source": [
    "%matplotlib inline\n",
    "import os\n",
    "import sys\n",
    "import time\n",
    "import itertools\n",
    "import logging\n",
    "\n",
    "import numpy as np\n",
    "np.random.seed(0)\n",
    "import pandas as pd\n",
    "import gym\n",
    "import tensorflow as tf\n",
    "from tensorflow import keras\n",
    "from PIL import Image\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "logging.basicConfig(stream=sys.stdout, level=logging.DEBUG,\n",
    "        format='%(asctime)s [%(levelname)s] %(message)s')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "观测空间 = Box(210, 160, 3)\n",
      "动作空间 = Discrete(4)\n",
      "回合最大步数 = 100000\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "[0, 592379725]"
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "env_spec_id = 'BreakoutDeterministic-v4'\n",
    "# env_spec_id = 'PongDeterministic-v4'\n",
    "# env_spec_id = 'SeaquestDeterministic-v4'\n",
    "# env_spec_id = 'SpaceInvadersDeterministic-v4'\n",
    "# env_spec_id = 'BeamRiderDeterministic-v4'\n",
    "env = gym.make(env_spec_id)\n",
    "print('观测空间 = {}'.format(env.observation_space))\n",
    "print('动作空间 = {}'.format(env.action_space))\n",
    "print('回合最大步数 = {}'.format(env._max_episode_steps))\n",
    "env.seed(0)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 深度 Q 网络智能体\n",
    "经验回放"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "class DQNReplayer:\n",
    "    def __init__(self, capacity):\n",
    "        self.memory = pd.DataFrame(index=range(capacity),\n",
    "                columns=['observation', 'action', 'reward',\n",
    "                'next_observation', 'done'])\n",
    "        self.i = 0\n",
    "        self.count = 0\n",
    "        self.capacity = capacity\n",
    "    \n",
    "    def store(self, *args):\n",
    "        self.memory.loc[self.i] = args\n",
    "        self.i = (self.i + 1) % self.capacity\n",
    "        self.count = min(self.count + 1, self.capacity)\n",
    "        \n",
    "    def sample(self, size):\n",
    "        indices = np.random.choice(self.count, size=size)\n",
    "        return tuple(np.stack(self.memory.loc[indices, field]) for \\\n",
    "                field in self.memory.columns)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "智能体"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "class DQNAgent:\n",
    "    def __init__(self, env, input_shape, learning_rate=0.00025,\n",
    "            load_path=None, gamma=0.99,\n",
    "            replay_memory_size=1000000, batch_size=32,\n",
    "            replay_start_size=0,\n",
    "            epsilon=1., epsilon_decrease_rate=9e-7, min_epsilon=0.1,\n",
    "            random_initial_steps=0,\n",
    "            clip_reward=True, rescale_state=True,\n",
    "            update_freq=1, target_network_update_freq=1):\n",
    "        \n",
    "        self.action_n = env.action_space.n\n",
    "        self.gamma = gamma\n",
    "        \n",
    "        # 经验回放参数\n",
    "        self.replay_memory_size = replay_memory_size\n",
    "        self.replay_start_size = replay_start_size\n",
    "        self.batch_size = batch_size\n",
    "        self.replayer = DQNReplayer(replay_memory_size)\n",
    "        \n",
    "        # 图像输入参数\n",
    "        self.img_shape = (input_shape[-1], input_shape[-2])\n",
    "        self.img_stack = input_shape[-3]\n",
    "        \n",
    "        # 探索参数\n",
    "        self.epsilon = epsilon\n",
    "        self.epsilon_decrease_rate = epsilon_decrease_rate\n",
    "        self.min_epsilon = min_epsilon\n",
    "        self.random_initial_steps = random_initial_steps\n",
    "        \n",
    "        self.clip_reward = clip_reward\n",
    "        self.rescale_state = rescale_state\n",
    "        \n",
    "        self.update_freq = update_freq\n",
    "        self.target_network_update_freq = target_network_update_freq\n",
    "        \n",
    "        # 评估网络\n",
    "        self.evaluate_net = self.build_network(\n",
    "                input_shape=input_shape, output_size=self.action_n,\n",
    "                conv_activation=tf.nn.relu,\n",
    "                fc_hidden_sizes=[512,], fc_activation=tf.nn.relu,\n",
    "                learning_rate=learning_rate, load_path=load_path)\n",
    "        self.evaluate_net.summary() # 输出网络结构\n",
    "        # 目标网络\n",
    "        self.target_net = self.build_network(\n",
    "                input_shape=input_shape, output_size=self.action_n,\n",
    "                conv_activation=tf.nn.relu,\n",
    "                fc_hidden_sizes=[512,], fc_activation=tf.nn.relu,\n",
    "                )\n",
    "        self.update_target_network()\n",
    "        \n",
    "        # 初始化计数值\n",
    "        self.step = 0\n",
    "        self.fit_count = 0\n",
    "\n",
    "\n",
    "    def build_network(self, input_shape, output_size, conv_activation,\n",
    "            fc_hidden_sizes, fc_activation, output_activation=None,\n",
    "            learning_rate=0.001, load_path=None):\n",
    "        # 网络输入格式: (样本, 通道, 行, 列)\n",
    "        model = keras.models.Sequential()\n",
    "        # tf 要求从 (样本, 通道, 行, 列) 改为 (样本, 行, 列, 通道)\n",
    "        model.add(keras.layers.Permute((2, 3, 1), input_shape=input_shape))\n",
    "        \n",
    "        # 卷积层\n",
    "        model.add(keras.layers.Conv2D(32, 8, strides=4,\n",
    "                activation=conv_activation))\n",
    "        model.add(keras.layers.Conv2D(64, 4, strides=2,\n",
    "                activation=conv_activation))\n",
    "        model.add(keras.layers.Conv2D(64, 3, strides=1,\n",
    "                activation=conv_activation))\n",
    "        \n",
    "        model.add(keras.layers.Flatten())\n",
    "        \n",
    "        # 全连接层\n",
    "        for hidden_size in fc_hidden_sizes:\n",
    "            model.add(keras.layers.Dense(hidden_size,\n",
    "                    activation=fc_activation))\n",
    "        model.add(keras.layers.Dense(output_size,\n",
    "                activation=output_activation))\n",
    "\n",
    "        if load_path is not None:\n",
    "            logging.info('载入网络权重 {}.'.format(load_path))\n",
    "            model.load_weights(load_path)\n",
    "\n",
    "        try: # tf2\n",
    "            optimizer = keras.optimizers.RMSprop(learning_rate, 0.95,\n",
    "                    momentum=0.95, epsilon=0.01)\n",
    "        except: # tf1\n",
    "            optimizer = tf.train.RMSPropOptimizer(learning_rate, 0.95,\n",
    "                    momentum=0.95, epsilon=0.01)\n",
    "        model.compile(loss=keras.losses.mse, optimizer=optimizer)\n",
    "        return model\n",
    "        \n",
    "    def get_next_state(self, state=None, observation=None):\n",
    "        img = Image.fromarray(observation, 'RGB') \n",
    "        img = img.resize(self.img_shape).convert('L') # 改大小,变灰度\n",
    "        img = np.asarray(img.getdata(), dtype=np.uint8\n",
    "                ).reshape(img.size[1], img.size[0]) # 转成 np.array\n",
    "        \n",
    "        # 堆叠图像\n",
    "        if state is None:\n",
    "            next_state = np.array([img,] * self.img_stack) # 初始化\n",
    "        else:\n",
    "            next_state = np.append(state[1:], [img,], axis=0)\n",
    "        return next_state\n",
    "    \n",
    "    def decide(self, state, test=False, step=None):\n",
    "        if step is not None and step < self.random_initial_steps:\n",
    "            epsilon = 1.\n",
    "        elif test:\n",
    "            epsilon = 0.05\n",
    "        else:\n",
    "            epsilon = self.epsilon\n",
    "        if np.random.rand() < epsilon:\n",
    "            action = np.random.choice(self.action_n)\n",
    "        else:\n",
    "            if self.rescale_state:\n",
    "                state = state / 128. - 1.\n",
    "            q_values = self.evaluate_net.predict(state[np.newaxis])[0]\n",
    "            action = np.argmax(q_values)\n",
    "        return action\n",
    "\n",
    "    def learn(self, state, action, reward, next_state, done):\n",
    "        self.replayer.store(state, action, reward, next_state, done)\n",
    "\n",
    "        self.step += 1\n",
    "        \n",
    "        if self.step % self.update_freq == 0 and \\\n",
    "                self.replayer.count >= self.replay_start_size:\n",
    "            states, actions, rewards, next_states, dones = \\\n",
    "                    self.replayer.sample(self.batch_size) # 回放\n",
    "\n",
    "            if self.rescale_state:\n",
    "                states = states / 128. - 1.\n",
    "                next_states = next_states / 128. - 1.\n",
    "            if self.clip_reward:\n",
    "                rewards = np.clip(rewards, -1., 1.)\n",
    "            \n",
    "            next_qs = self.target_net.predict(next_states)\n",
    "            next_max_qs = next_qs.max(axis=-1)\n",
    "            targets = self.evaluate_net.predict(states)\n",
    "            targets[range(self.batch_size), actions] = rewards + \\\n",
    "                    self.gamma * next_max_qs * (1. - dones)\n",
    "\n",
    "            h = self.evaluate_net.fit(states, targets, verbose=0)\n",
    "            self.fit_count += 1\n",
    "            \n",
    "            if self.fit_count % 100 == 0:\n",
    "                logging.info('训练 {}, 回合 {}, 存储大小 {}, 损失 {}' \\\n",
    "                        .format(self.fit_count, self.epsilon,\n",
    "                        self.replayer.count, h.history['loss'][0]))\n",
    "            \n",
    "            if self.fit_count % self.target_network_update_freq == 0:\n",
    "                self.update_target_network()\n",
    "        \n",
    "        # 更新 epsilon 的值：线性下降\n",
    "        if self.step >= self.replay_start_size:\n",
    "            self.epsilon = max(self.epsilon - self.epsilon_decrease_rate,\n",
    "                               self.min_epsilon)\n",
    "\n",
    "    def update_target_network(self): # 更新目标网络\n",
    "        self.target_net.set_weights(self.evaluate_net.get_weights())\n",
    "        logging.info('目标网络已更新')\n",
    "\n",
    "    def save_network(self, path): # 保存网络\n",
    "        dirname = os.path.dirname(save_path)\n",
    "        if not os.path.exists(dirname):\n",
    "            os.makedirs(dirname)\n",
    "            logging.info('创建文件夹 {}'.format(dirname))\n",
    "        self.evaluate_net.save_weights(path)\n",
    "        logging.info('网络权重已保存 {}'.format(path))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "测试"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "def test(env, agent, episodes=100, render=False, verbose=True):\n",
    "    steps, episode_rewards = [], []\n",
    "    for episode in range(episodes):\n",
    "        episode_reward = 0\n",
    "        observation = env.reset()\n",
    "        state = agent.get_next_state(None, observation)\n",
    "        for step in itertools.count():\n",
    "            if render:\n",
    "                env.render()\n",
    "            action = agent.decide(state, test=True, step=step)\n",
    "            observation, reward, done, info = env.step(action)\n",
    "            state = agent.get_next_state(state, observation)\n",
    "            episode_reward += reward\n",
    "            if done:\n",
    "                break\n",
    "        step += 1\n",
    "        steps.append(step)\n",
    "        episode_rewards.append(episode_reward)\n",
    "        logging.info('[测试] 回合 {}: 步骤 {}, 奖励 {}, 步数 {}'\n",
    "                .format(episode, step, episode_reward, np.sum(steps)))\n",
    "            \n",
    "    if verbose:\n",
    "        logging.info('[测试小结] 步数: 平均 = {}, 最小 = {}, 最大 = {}.' \\\n",
    "                .format(np.mean(steps), np.min(steps), np.max(steps)))\n",
    "        logging.info('[测试小结] 奖励: 平均 = {}, 最小 = {}, 最大 = {}' \\\n",
    "                .format(np.mean(episode_rewards), np.min(episode_rewards),\n",
    "                np.max(episode_rewards)))\n",
    "    return episode_rewards"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "参数设置"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "render = False\n",
    "load_path = None\n",
    "save_path = './output/' + env.unwrapped.spec.id + '-' + \\\n",
    "        time.strftime('%Y%m%d-%H%M%S') + '/model.h5'\n",
    "\n",
    "\"\"\"\n",
    "Nature 文章使用的参数, 运行极慢, 请勿轻易尝试\n",
    "\"\"\"\n",
    "input_shape = (4, 110, 84) # 输入网络大小\n",
    "batch_size = 32\n",
    "replay_memory_size = 1000000\n",
    "target_network_update_freq = 10000\n",
    "gamma = 0.99\n",
    "update_freq = 4 # 训练网络的间隔\n",
    "learning_rate = 0.00025 # 优化器学习率\n",
    "epsilon = 1. # 初始探索率\n",
    "min_epsilon = 0.1 # 最终探索率\n",
    "epsilon_decrease = 9e-7 # 探索减小速度\n",
    "replay_start_size = 50000 # 开始训练前的经验数\n",
    "random_initial_steps = 30 # 每个回合开始时随机步数\n",
    "frames = 50000000 # 整个算法的总训练步数\n",
    "test_freq = 50000 # 验证智能体的步数间隔\n",
    "test_episodes = 100 # 每次验证智能体的回合数\n",
    "\n",
    "\n",
    "\"\"\"\n",
    "小规模参数, 运行时间数小时, 有一点点训练效果\n",
    "\"\"\"\n",
    "batch_size = 32\n",
    "replay_memory_size = 50000\n",
    "target_network_update_freq = 4000\n",
    "replay_start_size = 10000\n",
    "random_initial_steps = 30\n",
    "frames = 100000\n",
    "test_freq = 25000\n",
    "test_episodes = 50\n",
    "\n",
    "\n",
    "# \"\"\"\n",
    "# 超小规模参数, 数分钟即可运行完, 基本没有训练效果\n",
    "# \"\"\"\n",
    "# batch_size = 6\n",
    "# replay_memory_size = 5000\n",
    "# target_network_update_freq = 80\n",
    "# replay_start_size = 500\n",
    "# random_initial_steps = 30\n",
    "# frames = 7500\n",
    "# test_freq = 2500\n",
    "# test_episodes = 10"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "训练"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "_________________________________________________________________\n",
      "Layer (type)                 Output Shape              Param #   \n",
      "=================================================================\n",
      "permute (Permute)            (None, 110, 84, 4)        0         \n",
      "_________________________________________________________________\n",
      "conv2d (Conv2D)              (None, 26, 20, 32)        8224      \n",
      "_________________________________________________________________\n",
      "conv2d_1 (Conv2D)            (None, 12, 9, 64)         32832     \n",
      "_________________________________________________________________\n",
      "conv2d_2 (Conv2D)            (None, 10, 7, 64)         36928     \n",
      "_________________________________________________________________\n",
      "flatten (Flatten)            (None, 4480)              0         \n",
      "_________________________________________________________________\n",
      "dense (Dense)                (None, 512)               2294272   \n",
      "_________________________________________________________________\n",
      "dense_1 (Dense)              (None, 4)                 2052      \n",
      "=================================================================\n",
      "Total params: 2,374,308\n",
      "Trainable params: 2,374,308\n",
      "Non-trainable params: 0\n",
      "_________________________________________________________________\n",
      "2019-01-01 10:02:24,414 [INFO] 目标网络已更新\n",
      "2019-01-01 10:02:24,414 [INFO] 训练开始\n",
      "2019-01-01 10:02:34,594 [INFO] 回合 0, 步数 138, 奖励 0.0, 总步数 139\n",
      "2019-01-01 10:02:43,640 [INFO] 回合 1, 步数 134, 奖励 0.0, 总步数 274\n",
      "2019-01-01 10:02:51,923 [INFO] 训练 100, 回合 0.9996409000000118, 存储大小 400, 损失 4.843622446060181e-05\n",
      "2019-01-01 10:02:54,568 [INFO] 回合 2, 步数 168, 奖励 1.0, 总步数 443\n",
      "2019-01-01 10:03:02,791 [INFO] 回合 3, 步数 134, 奖励 0.0, 总步数 578\n",
      "2019-01-01 10:03:15,486 [INFO] 回合 4, 步数 204, 奖励 2.0, 总步数 783\n",
      "2019-01-01 10:03:16,917 [INFO] 训练 200, 回合 0.9992809000000237, 存储大小 800, 损失 6.180226773722097e-05\n",
      "2019-01-01 10:03:24,068 [INFO] 回合 5, 步数 138, 奖励 0.0, 总步数 922\n",
      "2019-01-01 10:03:32,355 [INFO] 回合 6, 步数 142, 奖励 0.0, 总步数 1065\n",
      "2019-01-01 10:03:41,022 [INFO] 训练 300, 回合 0.9989209000000355, 存储大小 1200, 损失 2.188369217037689e-05\n",
      "2019-01-01 10:03:42,807 [INFO] 回合 7, 步数 172, 奖励 1.0, 总步数 1238\n",
      "2019-01-01 10:03:57,767 [INFO] 回合 8, 步数 253, 奖励 3.0, 总步数 1492\n",
      "2019-01-01 10:04:05,211 [INFO] 训练 400, 回合 0.9985609000000474, 存储大小 1600, 损失 0.007717588916420937\n",
      "2019-01-01 10:04:10,514 [INFO] 回合 9, 步数 206, 奖励 2.0, 总步数 1699\n",
      "2019-01-01 10:04:20,173 [INFO] 回合 10, 步数 159, 奖励 1.0, 总步数 1859\n",
      "2019-01-01 10:04:29,192 [INFO] 训练 500, 回合 0.9982009000000592, 存储大小 2000, 损失 6.697219214402139e-05\n",
      "2019-01-01 10:04:29,690 [INFO] 回合 11, 步数 163, 奖励 1.0, 总步数 2023\n",
      "2019-01-01 10:04:40,102 [INFO] 回合 12, 步数 175, 奖励 1.0, 总步数 2199\n",
      "2019-01-01 10:04:53,217 [INFO] 训练 600, 回合 0.9978409000000711, 存储大小 2400, 损失 4.8412559408461675e-05\n",
      "2019-01-01 10:04:53,473 [INFO] 回合 13, 步数 219, 奖励 2.0, 总步数 2419\n",
      "2019-01-01 10:05:01,705 [INFO] 回合 14, 步数 138, 奖励 0.0, 总步数 2558\n",
      "2019-01-01 10:05:09,695 [INFO] 回合 15, 步数 131, 奖励 0.0, 总步数 2690\n",
      "2019-01-01 10:05:17,342 [INFO] 训练 700, 回合 0.9974809000000829, 存储大小 2800, 损失 0.00042906339513137937\n",
      "2019-01-01 10:05:18,052 [INFO] 回合 16, 步数 139, 奖励 0.0, 总步数 2830\n",
      "2019-01-01 10:05:25,627 [INFO] 回合 17, 步数 125, 奖励 0.0, 总步数 2956\n",
      "2019-01-01 10:05:37,356 [INFO] 回合 18, 步数 194, 奖励 1.0, 总步数 3151\n",
      "2019-01-01 10:05:41,352 [INFO] 训练 800, 回合 0.9971209000000948, 存储大小 3200, 损失 0.007902142591774464\n",
      "2019-01-01 10:05:48,000 [INFO] 回合 19, 步数 180, 奖励 1.0, 总步数 3332\n",
      "2019-01-01 10:05:56,483 [INFO] 回合 20, 步数 141, 奖励 0.0, 总步数 3474\n",
      "2019-01-01 10:06:04,239 [INFO] 回合 21, 步数 129, 奖励 0.0, 总步数 3604\n",
      "2019-01-01 10:06:05,464 [INFO] 训练 900, 回合 0.9967609000001066, 存储大小 3600, 损失 2.1810101316077635e-05\n",
      "2019-01-01 10:06:24,652 [INFO] 回合 22, 步数 338, 奖励 5.0, 总步数 3943\n",
      "2019-01-01 10:06:29,618 [INFO] 训练 1000, 回合 0.9964009000001185, 存储大小 4000, 损失 0.0002880878746509552\n",
      "2019-01-01 10:06:37,736 [INFO] 回合 23, 步数 219, 奖励 2.0, 总步数 4163\n",
      "2019-01-01 10:06:48,251 [INFO] 回合 24, 步数 174, 奖励 1.0, 总步数 4338\n",
      "2019-01-01 10:06:53,588 [INFO] 训练 1100, 回合 0.9960409000001303, 存储大小 4400, 损失 8.787334809312597e-05\n",
      "2019-01-01 10:06:56,932 [INFO] 回合 25, 步数 144, 奖励 0.0, 总步数 4483\n",
      "2019-01-01 10:07:04,900 [INFO] 回合 26, 步数 133, 奖励 0.0, 总步数 4617\n",
      "2019-01-01 10:07:12,494 [INFO] 回合 27, 步数 129, 奖励 0.0, 总步数 4747\n",
      "2019-01-01 10:07:17,424 [INFO] 训练 1200, 回合 0.9956809000001422, 存储大小 4800, 损失 4.198283568257466e-05\n",
      "2019-01-01 10:07:20,716 [INFO] 回合 28, 步数 134, 奖励 0.0, 总步数 4882\n",
      "2019-01-01 10:07:41,203 [INFO] 回合 29, 步数 340, 奖励 6.0, 总步数 5223\n",
      "2019-01-01 10:07:41,676 [INFO] 训练 1300, 回合 0.995320900000154, 存储大小 5200, 损失 7.330055814236403e-05\n",
      "2019-01-01 10:07:51,167 [INFO] 回合 30, 步数 166, 奖励 1.0, 总步数 5390\n",
      "2019-01-01 10:08:05,953 [INFO] 训练 1400, 回合 0.9949609000001659, 存储大小 5600, 损失 2.1248448319965973e-05\n",
      "2019-01-01 10:08:07,698 [INFO] 回合 31, 步数 270, 奖励 3.0, 总步数 5661\n",
      "2019-01-01 10:08:22,795 [INFO] 回合 32, 步数 249, 奖励 3.0, 总步数 5911\n",
      "2019-01-01 10:08:30,424 [INFO] 训练 1500, 回合 0.9946009000001778, 存储大小 6000, 损失 2.6415531465318054e-05\n",
      "2019-01-01 10:08:30,987 [INFO] 回合 33, 步数 133, 奖励 0.0, 总步数 6045\n",
      "2019-01-01 10:08:44,672 [INFO] 回合 34, 步数 220, 奖励 2.0, 总步数 6266\n",
      "2019-01-01 10:08:55,211 [INFO] 训练 1600, 回合 0.9942409000001896, 存储大小 6400, 损失 3.238351928303018e-05\n",
      "2019-01-01 10:08:56,200 [INFO] 回合 35, 步数 187, 奖励 1.0, 总步数 6454\n",
      "2019-01-01 10:09:07,854 [INFO] 回合 36, 步数 189, 奖励 1.0, 总步数 6644\n",
      "2019-01-01 10:09:18,439 [INFO] 回合 37, 步数 169, 奖励 1.0, 总步数 6814\n",
      "2019-01-01 10:09:19,977 [INFO] 训练 1700, 回合 0.9938809000002015, 存储大小 6800, 损失 1.9180391973350197e-05\n",
      "2019-01-01 10:09:31,883 [INFO] 回合 38, 步数 214, 奖励 2.0, 总步数 7029\n",
      "2019-01-01 10:09:40,592 [INFO] 回合 39, 步数 140, 奖励 0.0, 总步数 7170\n",
      "2019-01-01 10:09:45,029 [INFO] 训练 1800, 回合 0.9935209000002133, 存储大小 7200, 损失 4.183354030828923e-05\n",
      "2019-01-01 10:09:49,516 [INFO] 回合 40, 步数 143, 奖励 0.0, 总步数 7314\n",
      "2019-01-01 10:10:06,304 [INFO] 回合 41, 步数 269, 奖励 3.0, 总步数 7584\n",
      "2019-01-01 10:10:09,998 [INFO] 训练 1900, 回合 0.9931609000002252, 存储大小 7600, 损失 4.528710269369185e-05\n",
      "2019-01-01 10:10:14,886 [INFO] 回合 42, 步数 137, 奖励 0.0, 总步数 7722\n",
      "2019-01-01 10:10:28,598 [INFO] 回合 43, 步数 220, 奖励 2.0, 总步数 7943\n",
      "2019-01-01 10:10:35,038 [INFO] 训练 2000, 回合 0.992800900000237, 存储大小 8000, 损失 4.03815574827604e-05\n",
      "2019-01-01 10:10:51,083 [INFO] 回合 44, 步数 357, 奖励 5.0, 总步数 8301\n",
      "2019-01-01 10:11:00,138 [INFO] 训练 2100, 回合 0.9924409000002489, 存储大小 8400, 损失 0.00012446058099158108\n",
      "2019-01-01 10:11:00,158 [INFO] 回合 45, 步数 145, 奖励 0.0, 总步数 8447\n",
      "2019-01-01 10:11:08,707 [INFO] 回合 46, 步数 135, 奖励 0.0, 总步数 8583\n",
      "2019-01-01 10:11:19,139 [INFO] 回合 47, 步数 164, 奖励 1.0, 总步数 8748\n",
      "2019-01-01 10:11:25,485 [INFO] 训练 2200, 回合 0.9920809000002607, 存储大小 8800, 损失 3.841147554339841e-05\n",
      "2019-01-01 10:11:33,064 [INFO] 回合 48, 步数 220, 奖励 2.0, 总步数 8969\n",
      "2019-01-01 10:11:44,275 [INFO] 回合 49, 步数 176, 奖励 1.0, 总步数 9146\n",
      "2019-01-01 10:11:50,855 [INFO] 训练 2300, 回合 0.9917209000002726, 存储大小 9200, 损失 0.0002932061324827373\n",
      "2019-01-01 10:11:56,253 [INFO] 回合 50, 步数 188, 奖励 1.0, 总步数 9335\n",
      "2019-01-01 10:12:05,686 [INFO] 回合 51, 步数 144, 奖励 0.0, 总步数 9480\n",
      "2019-01-01 10:12:16,688 [INFO] 训练 2400, 回合 0.9913609000002844, 存储大小 9600, 损失 9.178964683087543e-05\n",
      "2019-01-01 10:12:18,235 [INFO] 回合 52, 步数 196, 奖励 1.0, 总步数 9677\n",
      "2019-01-01 10:12:26,699 [INFO] 回合 53, 步数 130, 奖励 0.0, 总步数 9808\n",
      "2019-01-01 10:12:40,134 [INFO] 回合 54, 步数 206, 奖励 2.0, 总步数 10015\n",
      "2019-01-01 10:12:42,678 [INFO] 训练 2500, 回合 0.9910009000002963, 存储大小 10000, 损失 2.438024603179656e-05\n",
      "2019-01-01 10:12:48,873 [INFO] 回合 55, 步数 136, 奖励 0.0, 总步数 10152\n",
      "2019-01-01 10:13:00,137 [INFO] 回合 56, 步数 173, 奖励 1.0, 总步数 10326\n",
      "2019-01-01 10:13:08,789 [INFO] 训练 2600, 回合 0.9906409000003081, 存储大小 10400, 损失 3.209058195352554e-05\n",
      "2019-01-01 10:13:11,964 [INFO] 回合 57, 步数 180, 奖励 1.0, 总步数 10507\n",
      "2019-01-01 10:13:22,951 [INFO] 回合 58, 步数 169, 奖励 1.0, 总步数 10677\n",
      "2019-01-01 10:13:31,773 [INFO] 回合 59, 步数 135, 奖励 0.0, 总步数 10813\n",
      "2019-01-01 10:13:34,943 [INFO] 训练 2700, 回合 0.99028090000032, 存储大小 10800, 损失 0.000382433325285092\n",
      "2019-01-01 10:13:40,942 [INFO] 回合 60, 步数 139, 奖励 0.0, 总步数 10953\n",
      "2019-01-01 10:13:51,041 [INFO] 回合 61, 步数 154, 奖励 0.0, 总步数 11108\n",
      "2019-01-01 10:14:00,949 [INFO] 回合 62, 步数 147, 奖励 0.0, 总步数 11256\n",
      "2019-01-01 10:14:01,527 [INFO] 训练 2800, 回合 0.9899209000003318, 存储大小 11200, 损失 1.5898156561888754e-05\n",
      "2019-01-01 10:14:12,804 [INFO] 回合 63, 步数 180, 奖励 1.0, 总步数 11437\n",
      "2019-01-01 10:14:27,897 [INFO] 训练 2900, 回合 0.9895609000003437, 存储大小 11600, 损失 0.0003618295886553824\n",
      "2019-01-01 10:14:29,731 [INFO] 回合 64, 步数 257, 奖励 3.0, 总步数 11695\n",
      "2019-01-01 10:14:39,143 [INFO] 回合 65, 步数 142, 奖励 0.0, 总步数 11838\n",
      "2019-01-01 10:14:50,102 [INFO] 回合 66, 步数 167, 奖励 1.0, 总步数 12006\n",
      "2019-01-01 10:14:54,300 [INFO] 训练 3000, 回合 0.9892009000003555, 存储大小 12000, 损失 7.370809180429205e-05\n",
      "2019-01-01 10:15:03,819 [INFO] 回合 67, 步数 207, 奖励 2.0, 总步数 12214\n",
      "2019-01-01 10:15:15,909 [INFO] 回合 68, 步数 179, 奖励 1.0, 总步数 12394\n",
      "2019-01-01 10:15:20,916 [INFO] 训练 3100, 回合 0.9888409000003674, 存储大小 12400, 损失 3.399496927158907e-05\n",
      "2019-01-01 10:15:28,614 [INFO] 回合 69, 步数 193, 奖励 1.0, 总步数 12588\n",
      "2019-01-01 10:15:42,380 [INFO] 回合 70, 步数 209, 奖励 2.0, 总步数 12798\n",
      "2019-01-01 10:15:47,457 [INFO] 训练 3200, 回合 0.9884809000003792, 存储大小 12800, 损失 5.264650462777354e-05\n",
      "2019-01-01 10:15:55,786 [INFO] 回合 71, 步数 198, 奖励 2.0, 总步数 12997\n",
      "2019-01-01 10:16:06,487 [INFO] 回合 72, 步数 155, 奖励 1.0, 总步数 13153\n",
      "2019-01-01 10:16:14,720 [INFO] 训练 3300, 回合 0.9881209000003911, 存储大小 13200, 损失 5.967324977973476e-05\n",
      "2019-01-01 10:16:15,798 [INFO] 回合 73, 步数 137, 奖励 0.0, 总步数 13291\n",
      "2019-01-01 10:16:24,621 [INFO] 回合 74, 步数 130, 奖励 0.0, 总步数 13422\n",
      "2019-01-01 10:16:35,736 [INFO] 回合 75, 步数 161, 奖励 1.0, 总步数 13584\n",
      "2019-01-01 10:16:41,869 [INFO] 训练 3400, 回合 0.987760900000403, 存储大小 13600, 损失 0.00019519051420502365\n",
      "2019-01-01 10:16:44,596 [INFO] 回合 76, 步数 132, 奖励 0.0, 总步数 13717\n",
      "2019-01-01 10:16:54,621 [INFO] 回合 77, 步数 150, 奖励 0.0, 总步数 13868\n",
      "2019-01-01 10:17:03,982 [INFO] 回合 78, 步数 134, 奖励 0.0, 总步数 14003\n",
      "2019-01-01 10:17:09,337 [INFO] 训练 3500, 回合 0.9874009000004148, 存储大小 14000, 损失 0.015084140002727509\n",
      "2019-01-01 10:17:14,387 [INFO] 回合 79, 步数 150, 奖励 0.0, 总步数 14154\n",
      "2019-01-01 10:17:27,344 [INFO] 回合 80, 步数 187, 奖励 1.0, 总步数 14342\n",
      "2019-01-01 10:17:36,842 [INFO] 回合 81, 步数 137, 奖励 0.0, 总步数 14480\n",
      "2019-01-01 10:17:37,089 [INFO] 训练 3600, 回合 0.9870409000004267, 存储大小 14400, 损失 0.007852085866034031\n",
      "2019-01-01 10:17:45,248 [INFO] 回合 82, 步数 124, 奖励 0.0, 总步数 14605\n",
      "2019-01-01 10:18:00,646 [INFO] 回合 83, 步数 225, 奖励 2.0, 总步数 14831\n",
      "2019-01-01 10:18:04,557 [INFO] 训练 3700, 回合 0.9866809000004385, 存储大小 14800, 损失 2.0255327399354428e-05\n",
      "2019-01-01 10:18:16,679 [INFO] 回合 84, 步数 231, 奖励 2.0, 总步数 15063\n",
      "2019-01-01 10:18:26,044 [INFO] 回合 85, 步数 137, 奖励 0.0, 总步数 15201\n",
      "2019-01-01 10:18:32,072 [INFO] 训练 3800, 回合 0.9863209000004504, 存储大小 15200, 损失 1.9729992345673963e-05\n",
      "2019-01-01 10:18:37,339 [INFO] 回合 86, 步数 163, 奖励 1.0, 总步数 15365\n",
      "2019-01-01 10:18:46,572 [INFO] 回合 87, 步数 132, 奖励 0.0, 总步数 15498\n",
      "2019-01-01 10:18:58,524 [INFO] 回合 88, 步数 174, 奖励 1.0, 总步数 15673\n",
      "2019-01-01 10:18:59,611 [INFO] 训练 3900, 回合 0.9859609000004622, 存储大小 15600, 损失 0.00032049533911049366\n",
      "2019-01-01 10:19:07,627 [INFO] 回合 89, 步数 133, 奖励 0.0, 总步数 15807\n",
      "2019-01-01 10:19:16,805 [INFO] 回合 90, 步数 132, 奖励 0.0, 总步数 15940\n",
      "2019-01-01 10:19:27,069 [INFO] 回合 91, 步数 143, 奖励 0.0, 总步数 16084\n",
      "2019-01-01 10:19:27,655 [INFO] 训练 4000, 回合 0.9856009000004741, 存储大小 16000, 损失 2.7707319532055408e-05\n",
      "2019-01-01 10:19:27,673 [INFO] 目标网络已更新\n",
      "2019-01-01 10:19:40,378 [INFO] 回合 92, 步数 190, 奖励 2.0, 总步数 16275\n",
      "2019-01-01 10:19:50,357 [INFO] 回合 93, 步数 136, 奖励 0.0, 总步数 16412\n",
      "2019-01-01 10:19:56,285 [INFO] 训练 4100, 回合 0.9852409000004859, 存储大小 16400, 损失 3.4698045055847615e-05\n",
      "2019-01-01 10:19:59,944 [INFO] 回合 94, 步数 136, 奖励 0.0, 总步数 16549\n",
      "2019-01-01 10:20:12,132 [INFO] 回合 95, 步数 173, 奖励 1.0, 总步数 16723\n",
      "2019-01-01 10:20:24,477 [INFO] 训练 4200, 回合 0.9848809000004978, 存储大小 16800, 损失 6.051631316950079e-06\n",
      "2019-01-01 10:20:25,927 [INFO] 回合 96, 步数 194, 奖励 1.0, 总步数 16918\n",
      "2019-01-01 10:20:35,165 [INFO] 回合 97, 步数 133, 奖励 0.0, 总步数 17052\n",
      "2019-01-01 10:20:51,012 [INFO] 回合 98, 步数 225, 奖励 2.0, 总步数 17278\n",
      "2019-01-01 10:20:52,716 [INFO] 训练 4300, 回合 0.9845209000005096, 存储大小 17200, 损失 1.89393394975923e-05\n",
      "2019-01-01 10:21:06,428 [INFO] 回合 99, 步数 214, 奖励 2.0, 总步数 17493\n",
      "2019-01-01 10:21:15,818 [INFO] 回合 100, 步数 132, 奖励 0.0, 总步数 17626\n",
      "2019-01-01 10:21:21,163 [INFO] 训练 4400, 回合 0.9841609000005215, 存储大小 17600, 损失 1.0347192073822953e-05\n",
      "2019-01-01 10:21:34,181 [INFO] 回合 101, 步数 255, 奖励 3.0, 总步数 17882\n",
      "2019-01-01 10:21:50,063 [INFO] 训练 4500, 回合 0.9838009000005333, 存储大小 18000, 损失 0.0003910824016202241\n",
      "2019-01-01 10:21:52,725 [INFO] 回合 102, 步数 256, 奖励 3.0, 总步数 18139\n",
      "2019-01-01 10:22:01,978 [INFO] 回合 103, 步数 128, 奖励 0.0, 总步数 18268\n",
      "2019-01-01 10:22:14,748 [INFO] 回合 104, 步数 177, 奖励 1.0, 总步数 18446\n",
      "2019-01-01 10:22:18,998 [INFO] 训练 4600, 回合 0.9834409000005452, 存储大小 18400, 损失 6.0698243032675236e-05\n",
      "2019-01-01 10:22:24,406 [INFO] 回合 105, 步数 137, 奖励 0.0, 总步数 18584\n",
      "2019-01-01 10:22:33,869 [INFO] 回合 106, 步数 133, 奖励 0.0, 总步数 18718\n",
      "2019-01-01 10:22:47,811 [INFO] 训练 4700, 回合 0.983080900000557, 存储大小 18800, 损失 9.070324267668184e-06\n",
      "2019-01-01 10:22:48,107 [INFO] 回合 107, 步数 194, 奖励 1.0, 总步数 18913\n",
      "2019-01-01 10:22:57,620 [INFO] 回合 108, 步数 132, 奖励 0.0, 总步数 19046\n",
      "2019-01-01 10:23:10,498 [INFO] 回合 109, 步数 175, 奖励 1.0, 总步数 19222\n",
      "2019-01-01 10:23:17,033 [INFO] 训练 4800, 回合 0.9827209000005689, 存储大小 19200, 损失 2.1072555682621896e-05\n",
      "2019-01-01 10:23:22,384 [INFO] 回合 110, 步数 160, 奖励 1.0, 总步数 19383\n",
      "2019-01-01 10:23:34,060 [INFO] 回合 111, 步数 160, 奖励 1.0, 总步数 19544\n",
      "2019-01-01 10:23:46,448 [INFO] 训练 4900, 回合 0.9823609000005807, 存储大小 19600, 损失 5.271412192087155e-06\n",
      "2019-01-01 10:23:49,168 [INFO] 回合 112, 步数 206, 奖励 2.0, 总步数 19751\n",
      "2019-01-01 10:23:59,336 [INFO] 回合 113, 步数 140, 奖励 0.0, 总步数 19892\n",
      "2019-01-01 10:24:12,112 [INFO] 回合 114, 步数 172, 奖励 1.0, 总步数 20065\n",
      "2019-01-01 10:24:15,857 [INFO] 训练 5000, 回合 0.9820009000005926, 存储大小 20000, 损失 0.007677322253584862\n",
      "2019-01-01 10:24:21,632 [INFO] 回合 115, 步数 130, 奖励 0.0, 总步数 20196\n",
      "2019-01-01 10:24:37,512 [INFO] 回合 116, 步数 214, 奖励 2.0, 总步数 20411\n",
      "2019-01-01 10:24:45,629 [INFO] 训练 5100, 回合 0.9816409000006044, 存储大小 20400, 损失 1.5272589735104702e-05\n",
      "2019-01-01 10:24:48,025 [INFO] 回合 117, 步数 139, 奖励 0.0, 总步数 20551\n",
      "2019-01-01 10:25:11,419 [INFO] 回合 118, 步数 314, 奖励 4.0, 总步数 20866\n",
      "2019-01-01 10:25:15,550 [INFO] 训练 5200, 回合 0.9812809000006163, 存储大小 20800, 损失 0.0006034274119883776\n",
      "2019-01-01 10:25:25,668 [INFO] 回合 119, 步数 188, 奖励 2.0, 总步数 21055\n",
      "2019-01-01 10:25:39,598 [INFO] 回合 120, 步数 182, 奖励 1.0, 总步数 21238\n",
      "2019-01-01 10:25:46,059 [INFO] 训练 5300, 回合 0.9809209000006281, 存储大小 21200, 损失 0.0003370717167854309\n",
      "2019-01-01 10:25:55,226 [INFO] 回合 121, 步数 204, 奖励 2.0, 总步数 21443\n",
      "2019-01-01 10:26:06,475 [INFO] 回合 122, 步数 148, 奖励 0.0, 总步数 21592\n",
      "2019-01-01 10:26:16,578 [INFO] 训练 5400, 回合 0.98056090000064, 存储大小 21600, 损失 2.5577526685083285e-05\n",
      "2019-01-01 10:26:20,453 [INFO] 回合 123, 步数 185, 奖励 1.0, 总步数 21778\n",
      "2019-01-01 10:26:39,728 [INFO] 回合 124, 步数 253, 奖励 3.0, 总步数 22032\n",
      "2019-01-01 10:26:47,179 [INFO] 训练 5500, 回合 0.9802009000006519, 存储大小 22000, 损失 1.9752102161874063e-05\n",
      "2019-01-01 10:26:50,269 [INFO] 回合 125, 步数 133, 奖励 0.0, 总步数 22166\n",
      "2019-01-01 10:27:03,053 [INFO] 回合 126, 步数 170, 奖励 1.0, 总步数 22337\n",
      "2019-01-01 10:27:13,057 [INFO] 回合 127, 步数 129, 奖励 0.0, 总步数 22467\n",
      "2019-01-01 10:27:17,916 [INFO] 训练 5600, 回合 0.9798409000006637, 存储大小 22400, 损失 0.007791259326040745\n",
      "2019-01-01 10:27:30,014 [INFO] 回合 128, 步数 221, 奖励 2.0, 总步数 22689\n",
      "2019-01-01 10:27:42,662 [INFO] 回合 129, 步数 166, 奖励 1.0, 总步数 22856\n",
      "2019-01-01 10:27:48,578 [INFO] 训练 5700, 回合 0.9794809000006756, 存储大小 22800, 损失 0.007825951091945171\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "2019-01-01 10:27:53,321 [INFO] 回合 130, 步数 134, 奖励 0.0, 总步数 22991\n",
      "2019-01-01 10:28:13,858 [INFO] 回合 131, 步数 263, 奖励 3.0, 总步数 23255\n",
      "2019-01-01 10:28:19,902 [INFO] 训练 5800, 回合 0.9791209000006874, 存储大小 23200, 损失 5.217835496296175e-05\n",
      "2019-01-01 10:28:30,777 [INFO] 回合 132, 步数 218, 奖励 2.0, 总步数 23474\n",
      "2019-01-01 10:28:51,042 [INFO] 训练 5900, 回合 0.9787609000006993, 存储大小 23600, 损失 0.007824686355888844\n",
      "2019-01-01 10:28:57,085 [INFO] 回合 133, 步数 338, 奖励 4.0, 总步数 23813\n",
      "2019-01-01 10:29:11,382 [INFO] 回合 134, 步数 180, 奖励 1.0, 总步数 23994\n",
      "2019-01-01 10:29:21,461 [INFO] 回合 135, 步数 132, 奖励 0.0, 总步数 24127\n",
      "2019-01-01 10:29:22,398 [INFO] 训练 6000, 回合 0.9784009000007111, 存储大小 24000, 损失 1.397706273564836e-05\n",
      "2019-01-01 10:29:31,734 [INFO] 回合 136, 步数 129, 奖励 0.0, 总步数 24257\n",
      "2019-01-01 10:29:47,879 [INFO] 回合 137, 步数 205, 奖励 2.0, 总步数 24463\n",
      "2019-01-01 10:29:53,961 [INFO] 训练 6100, 回合 0.978040900000723, 存储大小 24400, 损失 2.0121200577705167e-05\n",
      "2019-01-01 10:30:03,074 [INFO] 回合 138, 步数 191, 奖励 1.0, 总步数 24655\n",
      "2019-01-01 10:30:17,026 [INFO] 回合 139, 步数 178, 奖励 1.0, 总步数 24834\n",
      "2019-01-01 10:30:25,675 [INFO] 训练 6200, 回合 0.9776809000007348, 存储大小 24800, 损失 0.00031047078664414585\n",
      "2019-01-01 10:30:28,948 [INFO] 回合 140, 步数 149, 奖励 0.0, 总步数 24984\n",
      "2019-01-01 10:30:38,196 [INFO] [测试] 回合 0: 步骤 333, 奖励 0.0, 步数 333\n",
      "2019-01-01 10:30:47,665 [INFO] [测试] 回合 1: 步骤 397, 奖励 0.0, 步数 730\n",
      "2019-01-01 10:30:54,954 [INFO] [测试] 回合 2: 步骤 318, 奖励 0.0, 步数 1048\n",
      "2019-01-01 10:31:04,390 [INFO] [测试] 回合 3: 步骤 398, 奖励 0.0, 步数 1446\n",
      "2019-01-01 10:31:16,095 [INFO] [测试] 回合 4: 步骤 493, 奖励 2.0, 步数 1939\n",
      "2019-01-01 10:31:30,358 [INFO] [测试] 回合 5: 步骤 591, 奖励 2.0, 步数 2530\n",
      "2019-01-01 10:31:37,795 [INFO] [测试] 回合 6: 步骤 327, 奖励 0.0, 步数 2857\n",
      "2019-01-01 10:31:50,270 [INFO] [测试] 回合 7: 步骤 537, 奖励 1.0, 步数 3394\n",
      "2019-01-01 10:31:59,214 [INFO] [测试] 回合 8: 步骤 395, 奖励 0.0, 步数 3789\n",
      "2019-01-01 10:32:09,260 [INFO] [测试] 回合 9: 步骤 430, 奖励 1.0, 步数 4219\n",
      "2019-01-01 10:32:18,670 [INFO] [测试] 回合 10: 步骤 414, 奖励 0.0, 步数 4633\n",
      "2019-01-01 10:32:28,391 [INFO] [测试] 回合 11: 步骤 443, 奖励 2.0, 步数 5076\n",
      "2019-01-01 10:32:38,785 [INFO] [测试] 回合 12: 步骤 462, 奖励 1.0, 步数 5538\n",
      "2019-01-01 10:32:51,606 [INFO] [测试] 回合 13: 步骤 558, 奖励 2.0, 步数 6096\n",
      "2019-01-01 10:32:59,553 [INFO] [测试] 回合 14: 步骤 353, 奖励 0.0, 步数 6449\n",
      "2019-01-01 10:33:07,520 [INFO] [测试] 回合 15: 步骤 359, 奖励 2.0, 步数 6808\n",
      "2019-01-01 10:33:13,864 [INFO] [测试] 回合 16: 步骤 288, 奖励 0.0, 步数 7096\n",
      "2019-01-01 10:33:18,171 [INFO] [测试] 回合 17: 步骤 204, 奖励 0.0, 步数 7300\n",
      "2019-01-01 10:33:25,361 [INFO] [测试] 回合 18: 步骤 325, 奖励 0.0, 步数 7625\n",
      "2019-01-01 10:33:34,775 [INFO] [测试] 回合 19: 步骤 415, 奖励 0.0, 步数 8040\n",
      "2019-01-01 10:33:55,877 [INFO] [测试] 回合 20: 步骤 901, 奖励 1.0, 步数 8941\n",
      "2019-01-01 10:34:03,871 [INFO] [测试] 回合 21: 步骤 358, 奖励 0.0, 步数 9299\n",
      "2019-01-01 10:34:23,567 [INFO] [测试] 回合 22: 步骤 834, 奖励 1.0, 步数 10133\n",
      "2019-01-01 10:34:28,042 [INFO] [测试] 回合 23: 步骤 212, 奖励 0.0, 步数 10345\n",
      "2019-01-01 10:34:35,881 [INFO] [测试] 回合 24: 步骤 349, 奖励 0.0, 步数 10694\n",
      "2019-01-01 10:34:49,502 [INFO] [测试] 回合 25: 步骤 588, 奖励 0.0, 步数 11282\n",
      "2019-01-01 10:34:53,667 [INFO] [测试] 回合 26: 步骤 192, 奖励 0.0, 步数 11474\n",
      "2019-01-01 10:35:00,650 [INFO] [测试] 回合 27: 步骤 317, 奖励 1.0, 步数 11791\n",
      "2019-01-01 10:35:10,693 [INFO] [测试] 回合 28: 步骤 441, 奖励 2.0, 步数 12232\n",
      "2019-01-01 10:35:17,790 [INFO] [测试] 回合 29: 步骤 327, 奖励 2.0, 步数 12559\n",
      "2019-01-01 10:35:26,589 [INFO] [测试] 回合 30: 步骤 396, 奖励 0.0, 步数 12955\n",
      "2019-01-01 10:35:37,655 [INFO] [测试] 回合 31: 步骤 493, 奖励 0.0, 步数 13448\n",
      "2019-01-01 10:35:47,498 [INFO] [测试] 回合 32: 步骤 434, 奖励 0.0, 步数 13882\n",
      "2019-01-01 10:35:54,957 [INFO] [测试] 回合 33: 步骤 334, 奖励 0.0, 步数 14216\n",
      "2019-01-01 10:36:07,392 [INFO] [测试] 回合 34: 步骤 537, 奖励 0.0, 步数 14753\n",
      "2019-01-01 10:36:15,358 [INFO] [测试] 回合 35: 步骤 347, 奖励 0.0, 步数 15100\n",
      "2019-01-01 10:36:27,103 [INFO] [测试] 回合 36: 步骤 521, 奖励 0.0, 步数 15621\n",
      "2019-01-01 10:36:40,413 [INFO] [测试] 回合 37: 步骤 591, 奖励 0.0, 步数 16212\n",
      "2019-01-01 10:36:49,577 [INFO] [测试] 回合 38: 步骤 410, 奖励 2.0, 步数 16622\n",
      "2019-01-01 10:36:53,585 [INFO] [测试] 回合 39: 步骤 193, 奖励 0.0, 步数 16815\n",
      "2019-01-01 10:37:00,456 [INFO] [测试] 回合 40: 步骤 317, 奖励 0.0, 步数 17132\n",
      "2019-01-01 10:37:07,639 [INFO] [测试] 回合 41: 步骤 317, 奖励 2.0, 步数 17449\n",
      "2019-01-01 10:37:15,616 [INFO] [测试] 回合 42: 步骤 368, 奖励 1.0, 步数 17817\n",
      "2019-01-01 10:37:28,483 [INFO] [测试] 回合 43: 步骤 577, 奖励 2.0, 步数 18394\n",
      "2019-01-01 10:37:35,616 [INFO] [测试] 回合 44: 步骤 330, 奖励 1.0, 步数 18724\n",
      "2019-01-01 10:37:41,595 [INFO] [测试] 回合 45: 步骤 277, 奖励 2.0, 步数 19001\n",
      "2019-01-01 10:37:48,796 [INFO] [测试] 回合 46: 步骤 324, 奖励 2.0, 步数 19325\n",
      "2019-01-01 10:37:55,822 [INFO] [测试] 回合 47: 步骤 326, 奖励 2.0, 步数 19651\n",
      "2019-01-01 10:38:01,931 [INFO] [测试] 回合 48: 步骤 285, 奖励 2.0, 步数 19936\n",
      "2019-01-01 10:38:14,380 [INFO] [测试] 回合 49: 步骤 556, 奖励 0.0, 步数 20492\n",
      "2019-01-01 10:38:14,380 [INFO] [测试小结] 步数: 平均 = 409.84, 最小 = 192, 最大 = 901.\n",
      "2019-01-01 10:38:14,390 [INFO] [测试小结] 奖励: 平均 = 0.72, 最小 = 0.0, 最大 = 2.0\n",
      "2019-01-01 10:38:14,394 [INFO] 创建文件夹 ./output/BreakoutDeterministic-v4-20190123-100223\n",
      "2019-01-01 10:38:14,613 [INFO] 网络权重已保存 ./output/BreakoutDeterministic-v4-20190123-100223/model.h5\n",
      "2019-01-01 10:38:14,668 [INFO] 网络权重已保存 ./output/BreakoutDeterministic-v4-20190123-100223/model.6214.h5\n",
      "2019-01-01 10:38:15,002 [INFO] 回合 141, 步数 17, 奖励 0.0, 总步数 25002\n",
      "2019-01-01 10:38:29,382 [INFO] 回合 142, 步数 182, 奖励 1.0, 总步数 25185\n",
      "2019-01-01 10:38:41,883 [INFO] 训练 6300, 回合 0.9773209000007467, 存储大小 25200, 损失 0.00033693789737299085\n",
      "2019-01-01 10:38:48,379 [INFO] 回合 143, 步数 240, 奖励 3.0, 总步数 25426\n",
      "2019-01-01 10:38:59,753 [INFO] 回合 144, 步数 139, 奖励 0.0, 总步数 25566\n",
      "2019-01-01 10:39:09,912 [INFO] 回合 145, 步数 126, 奖励 0.0, 总步数 25693\n",
      "2019-01-01 10:39:14,162 [INFO] 训练 6400, 回合 0.9769609000007585, 存储大小 25600, 损失 4.8092704673763365e-05\n",
      "2019-01-01 10:39:23,015 [INFO] 回合 146, 步数 165, 奖励 1.0, 总步数 25859\n",
      "2019-01-01 10:39:33,044 [INFO] 回合 147, 步数 125, 奖励 0.0, 总步数 25985\n",
      "2019-01-01 10:39:44,034 [INFO] 回合 148, 步数 136, 奖励 0.0, 总步数 26122\n",
      "2019-01-01 10:39:46,391 [INFO] 训练 6500, 回合 0.9766009000007704, 存储大小 26000, 损失 2.9960156098240986e-05\n",
      "2019-01-01 10:40:00,769 [INFO] 回合 149, 步数 204, 奖励 2.0, 总步数 26327\n",
      "2019-01-01 10:40:12,290 [INFO] 回合 150, 步数 141, 奖励 0.0, 总步数 26469\n",
      "2019-01-01 10:40:19,118 [INFO] 训练 6600, 回合 0.9762409000007822, 存储大小 26400, 损失 1.2838485417887568e-05\n",
      "2019-01-01 10:40:22,743 [INFO] 回合 151, 步数 129, 奖励 0.0, 总步数 26599\n",
      "2019-01-01 10:40:40,024 [INFO] 回合 152, 步数 205, 奖励 2.0, 总步数 26805\n",
      "2019-01-01 10:40:52,161 [INFO] 训练 6700, 回合 0.9758809000007941, 存储大小 26800, 损失 0.007883974350988865\n",
      "2019-01-01 10:40:59,242 [INFO] 回合 153, 步数 238, 奖励 3.0, 总步数 27044\n",
      "2019-01-01 10:41:10,320 [INFO] 回合 154, 步数 131, 奖励 0.0, 总步数 27176\n",
      "2019-01-01 10:41:23,769 [INFO] 回合 155, 步数 166, 奖励 1.0, 总步数 27343\n",
      "2019-01-01 10:41:25,055 [INFO] 训练 6800, 回合 0.9755209000008059, 存储大小 27200, 损失 8.911549230106175e-06\n",
      "2019-01-01 10:41:34,342 [INFO] 回合 156, 步数 128, 奖励 0.0, 总步数 27472\n",
      "2019-01-01 10:41:49,462 [INFO] 回合 157, 步数 179, 奖励 1.0, 总步数 27652\n",
      "2019-01-01 10:41:58,402 [INFO] 训练 6900, 回合 0.9751609000008178, 存储大小 27600, 损失 0.00011709606042131782\n",
      "2019-01-01 10:42:01,291 [INFO] 回合 158, 步数 142, 奖励 0.0, 总步数 27795\n",
      "2019-01-01 10:42:12,795 [INFO] 回合 159, 步数 139, 奖励 0.0, 总步数 27935\n",
      "2019-01-01 10:42:25,292 [INFO] 回合 160, 步数 146, 奖励 0.0, 总步数 28082\n",
      "2019-01-01 10:42:31,892 [INFO] 训练 7000, 回合 0.9748009000008296, 存储大小 28000, 损失 0.00778159499168396\n",
      "2019-01-01 10:42:35,258 [INFO] 回合 161, 步数 122, 奖励 0.0, 总步数 28205\n",
      "2019-01-01 10:42:47,002 [INFO] 回合 162, 步数 137, 奖励 0.0, 总步数 28343\n",
      "2019-01-01 10:42:57,812 [INFO] 回合 163, 步数 128, 奖励 0.0, 总步数 28472\n",
      "2019-01-01 10:43:05,559 [INFO] 训练 7100, 回合 0.9744409000008415, 存储大小 28400, 损失 0.015485127456486225\n",
      "2019-01-01 10:43:15,322 [INFO] 回合 164, 步数 211, 奖励 2.0, 总步数 28684\n",
      "2019-01-01 10:43:29,542 [INFO] 回合 165, 步数 167, 奖励 1.0, 总步数 28852\n",
      "2019-01-01 10:43:39,199 [INFO] 训练 7200, 回合 0.9740809000008533, 存储大小 28800, 损失 1.870247069746256e-05\n",
      "2019-01-01 10:43:46,517 [INFO] 回合 166, 步数 203, 奖励 2.0, 总步数 29056\n",
      "2019-01-01 10:43:59,435 [INFO] 回合 167, 步数 154, 奖励 0.0, 总步数 29211\n",
      "2019-01-01 10:44:12,656 [INFO] 训练 7300, 回合 0.9737209000008652, 存储大小 29200, 损失 0.00037398497806861997\n",
      "2019-01-01 10:44:18,348 [INFO] 回合 168, 步数 228, 奖励 2.0, 总步数 29440\n",
      "2019-01-01 10:44:30,361 [INFO] 回合 169, 步数 142, 奖励 0.0, 总步数 29583\n",
      "2019-01-01 10:44:41,720 [INFO] 回合 170, 步数 138, 奖励 0.0, 总步数 29722\n",
      "2019-01-01 10:44:46,038 [INFO] 训练 7400, 回合 0.973360900000877, 存储大小 29600, 损失 0.007631045766174793\n",
      "2019-01-01 10:44:53,171 [INFO] 回合 171, 步数 137, 奖励 0.0, 总步数 29860\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "2019-01-01 10:45:05,302 [INFO] 回合 172, 步数 141, 奖励 0.0, 总步数 30002\n",
      "2019-01-01 10:45:19,812 [INFO] 训练 7500, 回合 0.9730009000008889, 存储大小 30000, 损失 0.0003025174664799124\n",
      "2019-01-01 10:45:22,921 [INFO] 回合 173, 步数 207, 奖励 2.0, 总步数 30210\n",
      "2019-01-01 10:45:34,267 [INFO] 回合 174, 步数 135, 奖励 0.0, 总步数 30346\n",
      "2019-01-01 10:45:46,185 [INFO] 回合 175, 步数 139, 奖励 0.0, 总步数 30486\n",
      "2019-01-01 10:45:54,190 [INFO] 训练 7600, 回合 0.9726409000009008, 存储大小 30400, 损失 2.0472414689720608e-05\n",
      "2019-01-01 10:45:58,735 [INFO] 回合 176, 步数 143, 奖励 0.0, 总步数 30630\n",
      "2019-01-01 10:46:12,331 [INFO] 回合 177, 步数 157, 奖励 1.0, 总步数 30788\n",
      "2019-01-01 10:46:29,105 [INFO] 训练 7700, 回合 0.9722809000009126, 存储大小 30800, 损失 6.645798566751182e-05\n",
      "2019-01-01 10:46:35,785 [INFO] 回合 178, 步数 269, 奖励 3.0, 总步数 31058\n",
      "2019-01-01 10:46:46,923 [INFO] 回合 179, 步数 128, 奖励 0.0, 总步数 31187\n",
      "2019-01-01 10:47:03,259 [INFO] 训练 7800, 回合 0.9719209000009245, 存储大小 31200, 损失 0.007749106734991074\n",
      "2019-01-01 10:47:05,624 [INFO] 回合 180, 步数 222, 奖励 2.0, 总步数 31410\n",
      "2019-01-01 10:47:17,975 [INFO] 回合 181, 步数 143, 奖励 0.0, 总步数 31554\n",
      "2019-01-01 10:47:29,510 [INFO] 回合 182, 步数 133, 奖励 0.0, 总步数 31688\n",
      "2019-01-01 10:47:38,252 [INFO] 训练 7900, 回合 0.9715609000009363, 存储大小 31600, 损失 7.707162694714498e-06\n",
      "2019-01-01 10:47:46,675 [INFO] 回合 183, 步数 194, 奖励 1.0, 总步数 31883\n",
      "2019-01-01 10:48:02,631 [INFO] 回合 184, 步数 179, 奖励 1.0, 总步数 32063\n",
      "2019-01-01 10:48:13,743 [INFO] 训练 8000, 回合 0.9712009000009482, 存储大小 32000, 损失 2.079288606182672e-05\n",
      "2019-01-01 10:48:13,784 [INFO] 目标网络已更新\n",
      "2019-01-01 10:48:24,386 [INFO] 回合 185, 步数 247, 奖励 4.0, 总步数 32311\n",
      "2019-01-01 10:48:42,541 [INFO] 回合 186, 步数 206, 奖励 2.0, 总步数 32518\n",
      "2019-01-01 10:48:48,957 [INFO] 训练 8100, 回合 0.97084090000096, 存储大小 32400, 损失 1.7382879377692007e-05\n",
      "2019-01-01 10:48:54,925 [INFO] 回合 187, 步数 137, 奖励 0.0, 总步数 32656\n",
      "2019-01-01 10:49:07,072 [INFO] 回合 188, 步数 138, 奖励 0.0, 总步数 32795\n",
      "2019-01-01 10:49:18,998 [INFO] 回合 189, 步数 132, 奖励 0.0, 总步数 32928\n",
      "2019-01-01 10:49:25,151 [INFO] 训练 8200, 回合 0.9704809000009719, 存储大小 32800, 损失 8.746716957830358e-06\n",
      "2019-01-01 10:49:30,833 [INFO] 回合 190, 步数 125, 奖励 0.0, 总步数 33054\n",
      "2019-01-01 10:49:44,870 [INFO] 回合 191, 步数 140, 奖励 0.0, 总步数 33195\n",
      "2019-01-01 10:50:04,480 [INFO] 训练 8300, 回合 0.9701209000009837, 存储大小 33200, 损失 2.5156106858048588e-05\n",
      "2019-01-01 10:50:04,913 [INFO] 回合 192, 步数 203, 奖励 2.0, 总步数 33399\n",
      "2019-01-01 10:50:24,970 [INFO] 回合 193, 步数 203, 奖励 2.0, 总步数 33603\n",
      "2019-01-01 10:50:39,718 [INFO] 回合 194, 步数 159, 奖励 1.0, 总步数 33763\n",
      "2019-01-01 10:50:42,498 [INFO] 训练 8400, 回合 0.9697609000009956, 存储大小 33600, 损失 3.705761628225446e-05\n",
      "2019-01-01 10:50:52,307 [INFO] 回合 195, 步数 140, 奖励 0.0, 总步数 33904\n",
      "2019-01-01 10:51:05,096 [INFO] 回合 196, 步数 148, 奖励 0.0, 总步数 34053\n",
      "2019-01-01 10:51:18,386 [INFO] 训练 8500, 回合 0.9694009000010074, 存储大小 34000, 损失 0.0003970569814555347\n",
      "2019-01-01 10:51:18,806 [INFO] 回合 197, 步数 150, 奖励 0.0, 总步数 34204\n",
      "2019-01-01 10:51:30,965 [INFO] 回合 198, 步数 131, 奖励 0.0, 总步数 34336\n",
      "2019-01-01 10:51:42,594 [INFO] 回合 199, 步数 133, 奖励 0.0, 总步数 34470\n",
      "2019-01-01 10:51:54,263 [INFO] 回合 200, 步数 128, 奖励 0.0, 总步数 34599\n",
      "2019-01-01 10:51:54,633 [INFO] 训练 8600, 回合 0.9690409000010193, 存储大小 34400, 损失 1.8324666598346084e-05\n",
      "2019-01-01 10:52:10,453 [INFO] 回合 201, 步数 174, 奖励 1.0, 总步数 34774\n",
      "2019-01-01 10:52:27,472 [INFO] 回合 202, 步数 194, 奖励 2.0, 总步数 34969\n",
      "2019-01-01 10:52:30,721 [INFO] 训练 8700, 回合 0.9686809000010311, 存储大小 34800, 损失 1.0757673408079427e-05\n",
      "2019-01-01 10:52:43,441 [INFO] 回合 203, 步数 174, 奖励 1.0, 总步数 35144\n",
      "2019-01-01 10:53:00,040 [INFO] 回合 204, 步数 184, 奖励 1.0, 总步数 35329\n",
      "2019-01-01 10:53:07,229 [INFO] 训练 8800, 回合 0.968320900001043, 存储大小 35200, 损失 7.036840543150902e-06\n",
      "2019-01-01 10:53:12,519 [INFO] 回合 205, 步数 133, 奖励 0.0, 总步数 35463\n",
      "2019-01-01 10:53:28,568 [INFO] 回合 206, 步数 173, 奖励 1.0, 总步数 35637\n",
      "2019-01-01 10:53:40,637 [INFO] 回合 207, 步数 132, 奖励 0.0, 总步数 35770\n",
      "2019-01-01 10:53:44,207 [INFO] 训练 8900, 回合 0.9679609000010548, 存储大小 35600, 损失 9.047234198078513e-05\n",
      "2019-01-01 10:53:52,687 [INFO] 回合 208, 步数 132, 奖励 0.0, 总步数 35903\n",
      "2019-01-01 10:54:12,265 [INFO] 回合 209, 步数 212, 奖励 2.0, 总步数 36116\n",
      "2019-01-01 10:54:21,395 [INFO] 训练 9000, 回合 0.9676009000010667, 存储大小 36000, 损失 9.292356480727904e-06\n",
      "2019-01-01 10:54:24,785 [INFO] 回合 210, 步数 131, 奖励 0.0, 总步数 36248\n",
      "2019-01-01 10:54:37,884 [INFO] 回合 211, 步数 133, 奖励 0.0, 总步数 36382\n",
      "2019-01-01 10:54:55,343 [INFO] 回合 212, 步数 179, 奖励 1.0, 总步数 36562\n",
      "2019-01-01 10:54:59,973 [INFO] 训练 9100, 回合 0.9672409000010785, 存储大小 36400, 损失 1.550850720377639e-05\n",
      "2019-01-01 10:55:08,532 [INFO] 回合 213, 步数 141, 奖励 0.0, 总步数 36704\n",
      "2019-01-01 10:55:31,931 [INFO] 回合 214, 步数 249, 奖励 3.0, 总步数 36954\n",
      "2019-01-01 10:55:37,970 [INFO] 训练 9200, 回合 0.9668809000010904, 存储大小 36800, 损失 0.007491265889257193\n",
      "2019-01-01 10:55:44,510 [INFO] 回合 215, 步数 130, 奖励 0.0, 总步数 37085\n",
      "2019-01-01 10:55:57,839 [INFO] 回合 216, 步数 138, 奖励 0.0, 总步数 37224\n",
      "2019-01-01 10:56:15,458 [INFO] 回合 217, 步数 181, 奖励 1.0, 总步数 37406\n",
      "2019-01-01 10:56:16,658 [INFO] 训练 9300, 回合 0.9665209000011022, 存储大小 37200, 损失 2.2086060198489577e-05\n",
      "2019-01-01 10:56:29,467 [INFO] 回合 218, 步数 138, 奖励 0.0, 总步数 37545\n",
      "2019-01-01 10:56:46,031 [INFO] 回合 219, 步数 173, 奖励 1.0, 总步数 37719\n",
      "2019-01-01 10:56:55,961 [INFO] 训练 9400, 回合 0.9661609000011141, 存储大小 37600, 损失 3.0792682082392275e-05\n",
      "2019-01-01 10:57:01,600 [INFO] 回合 220, 步数 161, 奖励 1.0, 总步数 37881\n",
      "2019-01-01 10:57:14,460 [INFO] 回合 221, 步数 133, 奖励 0.0, 总步数 38015\n",
      "2019-01-01 10:57:27,479 [INFO] 回合 222, 步数 135, 奖励 0.0, 总步数 38151\n",
      "2019-01-01 10:57:34,368 [INFO] 训练 9500, 回合 0.965800900001126, 存储大小 38000, 损失 2.370023685216438e-05\n",
      "2019-01-01 10:57:44,198 [INFO] 回合 223, 步数 176, 奖励 1.0, 总步数 38328\n",
      "2019-01-01 10:57:59,597 [INFO] 回合 224, 步数 166, 奖励 1.0, 总步数 38495\n",
      "2019-01-01 10:58:12,466 [INFO] 训练 9600, 回合 0.9654409000011378, 存储大小 38400, 损失 0.00031198569922707975\n",
      "2019-01-01 10:58:29,285 [INFO] 回合 225, 步数 306, 奖励 4.0, 总步数 38802\n",
      "2019-01-01 10:58:46,314 [INFO] 回合 226, 步数 174, 奖励 1.0, 总步数 38977\n",
      "2019-01-01 10:58:51,474 [INFO] 训练 9700, 回合 0.9650809000011497, 存储大小 38800, 损失 8.614668331574649e-06\n",
      "2019-01-01 10:59:04,923 [INFO] 回合 227, 步数 183, 奖励 1.0, 总步数 39161\n",
      "2019-01-01 10:59:19,132 [INFO] 回合 228, 步数 140, 奖励 0.0, 总步数 39302\n",
      "2019-01-01 10:59:32,101 [INFO] 训练 9800, 回合 0.9647209000011615, 存储大小 39200, 损失 6.056959682609886e-05\n",
      "2019-01-01 10:59:32,561 [INFO] 回合 229, 步数 132, 奖励 0.0, 总步数 39435\n",
      "2019-01-01 10:59:48,647 [INFO] 回合 230, 步数 162, 奖励 1.0, 总步数 39598\n",
      "2019-01-01 11:00:04,706 [INFO] 回合 231, 步数 154, 奖励 0.0, 总步数 39753\n",
      "2019-01-01 11:00:12,895 [INFO] 训练 9900, 回合 0.9643609000011734, 存储大小 39600, 损失 0.00030586525099352\n",
      "2019-01-01 11:00:23,815 [INFO] 回合 232, 步数 189, 奖励 1.0, 总步数 39943\n",
      "2019-01-01 11:00:50,633 [INFO] 回合 233, 步数 277, 奖励 3.0, 总步数 40221\n",
      "2019-01-01 11:00:52,073 [INFO] 训练 10000, 回合 0.9640009000011852, 存储大小 40000, 损失 3.4840600164898206e-06\n",
      "2019-01-01 11:01:05,802 [INFO] 回合 234, 步数 168, 奖励 1.0, 总步数 40390\n",
      "2019-01-01 11:01:23,951 [INFO] 回合 235, 步数 204, 奖励 2.0, 总步数 40595\n",
      "2019-01-01 11:01:27,911 [INFO] 训练 10100, 回合 0.9636409000011971, 存储大小 40400, 损失 0.00038305085035972297\n",
      "2019-01-01 11:01:43,300 [INFO] 回合 236, 步数 217, 奖励 2.0, 总步数 40813\n",
      "2019-01-01 11:01:55,839 [INFO] 回合 237, 步数 141, 奖励 0.0, 总步数 40955\n",
      "2019-01-01 11:02:03,319 [INFO] 训练 10200, 回合 0.9632809000012089, 存储大小 40800, 损失 1.1412251296860632e-05\n",
      "2019-01-01 11:02:19,778 [INFO] 回合 238, 步数 270, 奖励 3.0, 总步数 41226\n",
      "2019-01-01 11:02:35,757 [INFO] 回合 239, 步数 174, 奖励 1.0, 总步数 41401\n",
      "2019-01-01 11:02:39,427 [INFO] 训练 10300, 回合 0.9629209000012208, 存储大小 41200, 损失 0.007612650748342276\n",
      "2019-01-01 11:02:47,466 [INFO] 回合 240, 步数 130, 奖励 0.0, 总步数 41532\n",
      "2019-01-01 11:03:06,095 [INFO] 回合 241, 步数 201, 奖励 1.0, 总步数 41734\n",
      "2019-01-01 11:03:15,605 [INFO] 训练 10400, 回合 0.9625609000012326, 存储大小 41600, 损失 6.0337199101923034e-05\n",
      "2019-01-01 11:03:22,534 [INFO] 回合 242, 步数 186, 奖励 1.0, 总步数 41921\n",
      "2019-01-01 11:03:38,753 [INFO] 回合 243, 步数 176, 奖励 1.0, 总步数 42098\n",
      "2019-01-01 11:03:52,233 [INFO] 训练 10500, 回合 0.9622009000012445, 存储大小 42000, 损失 2.7796158974524587e-05\n",
      "2019-01-01 11:03:56,412 [INFO] 回合 244, 步数 190, 奖励 1.0, 总步数 42289\n",
      "2019-01-01 11:04:18,321 [INFO] 回合 245, 步数 242, 奖励 3.0, 总步数 42532\n",
      "2019-01-01 11:04:29,200 [INFO] 训练 10600, 回合 0.9618409000012563, 存储大小 42400, 损失 6.261344969971105e-05\n",
      "2019-01-01 11:04:39,380 [INFO] 回合 246, 步数 222, 奖励 2.0, 总步数 42755\n",
      "2019-01-01 11:04:53,699 [INFO] 回合 247, 步数 152, 奖励 0.0, 总步数 42908\n",
      "2019-01-01 11:05:06,638 [INFO] 训练 10700, 回合 0.9614809000012682, 存储大小 42800, 损失 4.4934204197488725e-05\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "2019-01-01 11:05:08,538 [INFO] 回合 248, 步数 161, 奖励 1.0, 总步数 43070\n",
      "2019-01-01 11:05:21,077 [INFO] 回合 249, 步数 135, 奖励 0.0, 总步数 43206\n",
      "2019-01-01 11:05:34,195 [INFO] 回合 250, 步数 134, 奖励 0.0, 总步数 43341\n",
      "2019-01-01 11:05:44,978 [INFO] 训练 10800, 回合 0.96112090000128, 存储大小 43200, 损失 2.434356792946346e-05\n",
      "2019-01-01 11:05:46,613 [INFO] 回合 251, 步数 126, 奖励 0.0, 总步数 43468\n",
      "2019-01-01 11:06:06,756 [INFO] 回合 252, 步数 212, 奖励 2.0, 总步数 43681\n",
      "2019-01-01 11:06:23,237 [INFO] 训练 10900, 回合 0.9607609000012919, 存储大小 43600, 损失 0.0006142361089587212\n",
      "2019-01-01 11:06:23,307 [INFO] 回合 253, 步数 175, 奖励 1.0, 总步数 43857\n",
      "2019-01-01 11:06:40,528 [INFO] 回合 254, 步数 186, 奖励 1.0, 总步数 44044\n",
      "2019-01-01 11:06:59,930 [INFO] 训练 11000, 回合 0.9604009000013037, 存储大小 44000, 损失 0.0003221797524020076\n",
      "2019-01-01 11:07:03,088 [INFO] 回合 255, 步数 246, 奖励 3.0, 总步数 44291\n",
      "2019-01-01 11:07:19,069 [INFO] 回合 256, 步数 161, 奖励 1.0, 总步数 44453\n",
      "2019-01-01 11:07:38,609 [INFO] 训练 11100, 回合 0.9600409000013156, 存储大小 44400, 损失 1.502894883742556e-05\n",
      "2019-01-01 11:07:38,679 [INFO] 回合 257, 步数 207, 奖励 2.0, 总步数 44661\n",
      "2019-01-01 11:08:10,535 [INFO] 回合 258, 步数 330, 奖励 5.0, 总步数 44992\n",
      "2019-01-01 11:08:17,005 [INFO] 训练 11200, 回合 0.9596809000013274, 存储大小 44800, 损失 1.886833160824608e-05\n",
      "2019-01-01 11:08:37,721 [INFO] 回合 259, 步数 286, 奖励 4.0, 总步数 45279\n",
      "2019-01-01 11:08:50,431 [INFO] 回合 260, 步数 133, 奖励 0.0, 总步数 45413\n",
      "2019-01-01 11:08:54,941 [INFO] 训练 11300, 回合 0.9593209000013393, 存储大小 45200, 损失 1.8351460312260315e-05\n",
      "2019-01-01 11:09:02,581 [INFO] 回合 261, 步数 132, 奖励 0.0, 总步数 45546\n",
      "2019-01-01 11:09:15,647 [INFO] 回合 262, 步数 140, 奖励 0.0, 总步数 45687\n",
      "2019-01-01 11:09:33,110 [INFO] 训练 11400, 回合 0.9589609000013511, 存储大小 45600, 损失 0.0005929269245825708\n",
      "2019-01-01 11:09:33,480 [INFO] 回合 263, 步数 180, 奖励 1.0, 总步数 45868\n",
      "2019-01-01 11:09:59,894 [INFO] 回合 264, 步数 268, 奖励 4.0, 总步数 46137\n",
      "2019-01-01 11:10:12,088 [INFO] 训练 11500, 回合 0.958600900001363, 存储大小 46000, 损失 3.271284731454216e-05\n",
      "2019-01-01 11:10:16,028 [INFO] 回合 265, 步数 171, 奖励 1.0, 总步数 46309\n",
      "2019-01-01 11:10:33,291 [INFO] 回合 266, 步数 177, 奖励 1.0, 总步数 46487\n",
      "2019-01-01 11:10:46,214 [INFO] 回合 267, 步数 139, 奖励 0.0, 总步数 46627\n",
      "2019-01-01 11:10:50,231 [INFO] 训练 11600, 回合 0.9582409000013749, 存储大小 46400, 损失 0.01485675573348999\n",
      "2019-01-01 11:11:03,470 [INFO] 回合 268, 步数 177, 奖励 1.0, 总步数 46805\n",
      "2019-01-01 11:11:19,251 [INFO] 回合 269, 步数 163, 奖励 1.0, 总步数 46969\n",
      "2019-01-01 11:11:29,629 [INFO] 训练 11700, 回合 0.9578809000013867, 存储大小 46800, 损失 0.0003335667715873569\n",
      "2019-01-01 11:11:41,497 [INFO] 回合 270, 步数 223, 奖励 2.0, 总步数 47193\n",
      "2019-01-01 11:12:05,145 [INFO] 回合 271, 步数 230, 奖励 3.0, 总步数 47424\n",
      "2019-01-01 11:12:11,205 [INFO] 训练 11800, 回合 0.9575209000013986, 存储大小 47200, 损失 4.449603147804737e-05\n",
      "2019-01-01 11:12:29,302 [INFO] 回合 272, 步数 188, 奖励 1.0, 总步数 47613\n",
      "2019-01-01 11:12:46,560 [INFO] 回合 273, 步数 134, 奖励 0.0, 总步数 47748\n",
      "2019-01-01 11:13:02,381 [INFO] 训练 11900, 回合 0.9571609000014104, 存储大小 47600, 损失 3.789798211073503e-05\n",
      "2019-01-01 11:13:02,928 [INFO] 回合 274, 步数 132, 奖励 0.0, 总步数 47881\n",
      "2019-01-01 11:13:18,190 [INFO] 回合 275, 步数 126, 奖励 0.0, 总步数 48008\n",
      "2019-01-01 11:13:34,149 [INFO] 回合 276, 步数 139, 奖励 0.0, 总步数 48148\n",
      "2019-01-01 11:13:49,894 [INFO] 训练 12000, 回合 0.9568009000014223, 存储大小 48000, 损失 8.664179404149763e-06\n",
      "2019-01-01 11:13:49,960 [INFO] 目标网络已更新\n",
      "2019-01-01 11:14:01,874 [INFO] 回合 277, 步数 232, 奖励 3.0, 总步数 48381\n",
      "2019-01-01 11:14:18,299 [INFO] 回合 278, 步数 138, 奖励 0.0, 总步数 48520\n",
      "2019-01-01 11:14:32,637 [INFO] 回合 279, 步数 126, 奖励 0.0, 总步数 48647\n",
      "2019-01-01 11:14:36,775 [INFO] 训练 12100, 回合 0.9564409000014341, 存储大小 48400, 损失 9.793554454518016e-06\n",
      "2019-01-01 11:14:57,972 [INFO] 回合 280, 步数 205, 奖励 2.0, 总步数 48853\n",
      "2019-01-01 11:15:20,754 [INFO] 回合 281, 步数 192, 奖励 2.0, 总步数 49046\n",
      "2019-01-01 11:15:25,291 [INFO] 训练 12200, 回合 0.956080900001446, 存储大小 48800, 损失 2.1544943592743948e-05\n",
      "2019-01-01 11:15:42,955 [INFO] 回合 282, 步数 187, 奖励 1.0, 总步数 49234\n",
      "2019-01-01 11:16:12,742 [INFO] 训练 12300, 回合 0.9557209000014578, 存储大小 49200, 损失 1.0590425517875701e-05\n",
      "2019-01-01 11:16:20,085 [INFO] 回合 283, 步数 310, 奖励 4.0, 总步数 49545\n",
      "2019-01-01 11:16:37,583 [INFO] 回合 284, 步数 140, 奖励 0.0, 总步数 49686\n",
      "2019-01-01 11:17:02,388 [INFO] 训练 12400, 回合 0.9553609000014697, 存储大小 49600, 损失 0.007535616867244244\n",
      "2019-01-01 11:17:05,116 [INFO] 回合 285, 步数 224, 奖励 2.0, 总步数 49911\n",
      "2019-01-01 11:17:33,625 [INFO] [测试] 回合 0: 步骤 416, 奖励 3.0, 步数 416\n",
      "2019-01-01 11:17:52,780 [INFO] [测试] 回合 1: 步骤 425, 奖励 4.0, 步数 841\n",
      "2019-01-01 11:18:11,367 [INFO] [测试] 回合 2: 步骤 406, 奖励 3.0, 步数 1247\n",
      "2019-01-01 11:18:36,483 [INFO] [测试] 回合 3: 步骤 542, 奖励 3.0, 步数 1789\n",
      "2019-01-01 11:19:04,036 [INFO] [测试] 回合 4: 步骤 606, 奖励 3.0, 步数 2395\n",
      "2019-01-01 11:19:30,559 [INFO] [测试] 回合 5: 步骤 582, 奖励 3.0, 步数 2977\n",
      "2019-01-01 11:19:45,784 [INFO] [测试] 回合 6: 步骤 346, 奖励 3.0, 步数 3323\n",
      "2019-01-01 11:20:07,574 [INFO] [测试] 回合 7: 步骤 481, 奖励 3.0, 步数 3804\n",
      "2019-01-01 11:20:24,701 [INFO] [测试] 回合 8: 步骤 377, 奖励 3.0, 步数 4181\n",
      "2019-01-01 11:20:41,242 [INFO] [测试] 回合 9: 步骤 369, 奖励 3.0, 步数 4550\n",
      "2019-01-01 11:21:01,625 [INFO] [测试] 回合 10: 步骤 457, 奖励 3.0, 步数 5007\n",
      "2019-01-01 11:21:24,592 [INFO] [测试] 回合 11: 步骤 494, 奖励 4.0, 步数 5501\n",
      "2019-01-01 11:21:49,258 [INFO] [测试] 回合 12: 步骤 534, 奖励 3.0, 步数 6035\n",
      "2019-01-01 11:22:15,821 [INFO] [测试] 回合 13: 步骤 582, 奖励 3.0, 步数 6617\n",
      "2019-01-01 11:22:27,267 [INFO] [测试] 回合 14: 步骤 269, 奖励 4.0, 步数 6886\n",
      "2019-01-01 11:22:49,407 [INFO] [测试] 回合 15: 步骤 498, 奖励 3.0, 步数 7384\n",
      "2019-01-01 11:23:26,429 [INFO] [测试] 回合 16: 步骤 854, 奖励 4.0, 步数 8238\n",
      "2019-01-01 11:23:55,175 [INFO] [测试] 回合 17: 步骤 645, 奖励 3.0, 步数 8883\n",
      "2019-01-01 11:24:13,632 [INFO] [测试] 回合 18: 步骤 412, 奖励 3.0, 步数 9295\n",
      "2019-01-01 11:24:32,833 [INFO] [测试] 回合 19: 步骤 435, 奖励 4.0, 步数 9730\n",
      "2019-01-01 11:24:52,139 [INFO] [测试] 回合 20: 步骤 446, 奖励 3.0, 步数 10176\n",
      "2019-01-01 11:25:11,391 [INFO] [测试] 回合 21: 步骤 412, 奖励 3.0, 步数 10588\n",
      "2019-01-01 11:25:28,371 [INFO] [测试] 回合 22: 步骤 370, 奖励 3.0, 步数 10958\n",
      "2019-01-01 11:25:54,635 [INFO] [测试] 回合 23: 步骤 563, 奖励 3.0, 步数 11521\n",
      "2019-01-01 11:26:09,611 [INFO] [测试] 回合 24: 步骤 331, 奖励 3.0, 步数 11852\n",
      "2019-01-01 11:26:23,060 [INFO] [测试] 回合 25: 步骤 299, 奖励 3.0, 步数 12151\n",
      "2019-01-01 11:26:37,788 [INFO] [测试] 回合 26: 步骤 324, 奖励 3.0, 步数 12475\n",
      "2019-01-01 11:26:50,345 [INFO] [测试] 回合 27: 步骤 270, 奖励 3.0, 步数 12745\n",
      "2019-01-01 11:27:08,752 [INFO] [测试] 回合 28: 步骤 403, 奖励 7.0, 步数 13148\n",
      "2019-01-01 11:27:29,608 [INFO] [测试] 回合 29: 步骤 439, 奖励 3.0, 步数 13587\n",
      "2019-01-01 11:27:43,765 [INFO] [测试] 回合 30: 步骤 319, 奖励 3.0, 步数 13906\n",
      "2019-01-01 11:28:07,434 [INFO] [测试] 回合 31: 步骤 514, 奖励 5.0, 步数 14420\n",
      "2019-01-01 11:28:21,369 [INFO] [测试] 回合 32: 步骤 308, 奖励 3.0, 步数 14728\n",
      "2019-01-01 11:28:43,134 [INFO] [测试] 回合 33: 步骤 480, 奖励 3.0, 步数 15208\n",
      "2019-01-01 11:29:00,092 [INFO] [测试] 回合 34: 步骤 374, 奖励 3.0, 步数 15582\n",
      "2019-01-01 11:29:15,810 [INFO] [测试] 回合 35: 步骤 351, 奖励 3.0, 步数 15933\n",
      "2019-01-01 11:29:30,683 [INFO] [测试] 回合 36: 步骤 328, 奖励 2.0, 步数 16261\n",
      "2019-01-01 11:29:52,179 [INFO] [测试] 回合 37: 步骤 472, 奖励 3.0, 步数 16733\n",
      "2019-01-01 11:30:14,407 [INFO] [测试] 回合 38: 步骤 490, 奖励 5.0, 步数 17223\n",
      "2019-01-01 11:30:30,915 [INFO] [测试] 回合 39: 步骤 390, 奖励 3.0, 步数 17613\n",
      "2019-01-01 11:30:49,097 [INFO] [测试] 回合 40: 步骤 434, 奖励 3.0, 步数 18047\n",
      "2019-01-01 11:31:06,830 [INFO] [测试] 回合 41: 步骤 390, 奖励 3.0, 步数 18437\n",
      "2019-01-01 11:31:38,919 [INFO] [测试] 回合 42: 步骤 678, 奖励 4.0, 步数 19115\n",
      "2019-01-01 11:32:03,948 [INFO] [测试] 回合 43: 步骤 538, 奖励 3.0, 步数 19653\n",
      "2019-01-01 11:32:23,737 [INFO] [测试] 回合 44: 步骤 432, 奖励 3.0, 步数 20085\n",
      "2019-01-01 11:32:36,443 [INFO] [测试] 回合 45: 步骤 288, 奖励 3.0, 步数 20373\n",
      "2019-01-01 11:32:55,364 [INFO] [测试] 回合 46: 步骤 411, 奖励 3.0, 步数 20784\n",
      "2019-01-01 11:33:12,931 [INFO] [测试] 回合 47: 步骤 380, 奖励 3.0, 步数 21164\n",
      "2019-01-01 11:33:36,129 [INFO] [测试] 回合 48: 步骤 499, 奖励 3.0, 步数 21663\n",
      "2019-01-01 11:34:01,610 [INFO] [测试] 回合 49: 步骤 538, 奖励 3.0, 步数 22201\n",
      "2019-01-01 11:34:01,610 [INFO] [测试小结] 步数: 平均 = 444.02, 最小 = 269, 最大 = 854.\n",
      "2019-01-01 11:34:01,620 [INFO] [测试小结] 奖励: 平均 = 3.26, 最小 = 2.0, 最大 = 7.0\n",
      "2019-01-01 11:34:01,746 [INFO] 网络权重已保存 ./output/BreakoutDeterministic-v4-20190123-100223/model.h5\n",
      "2019-01-01 11:34:01,826 [INFO] 网络权重已保存 ./output/BreakoutDeterministic-v4-20190123-100223/model.12428.h5\n",
      "2019-01-01 11:34:01,891 [INFO] 回合 286, 步数 90, 奖励 0.0, 总步数 50002\n",
      "2019-01-01 11:34:33,072 [INFO] 回合 287, 步数 252, 奖励 3.0, 总步数 50255\n",
      "2019-01-01 11:34:37,649 [INFO] 训练 12500, 回合 0.9550009000014815, 存储大小 50000, 损失 0.007616640534251928\n",
      "2019-01-01 11:34:56,745 [INFO] 回合 288, 步数 180, 奖励 1.0, 总步数 50436\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "2019-01-01 11:35:19,412 [INFO] 回合 289, 步数 166, 奖励 1.0, 总步数 50603\n",
      "2019-01-01 11:35:31,518 [INFO] 训练 12600, 回合 0.9546409000014934, 存储大小 50000, 损失 5.707787295250455e-06\n",
      "2019-01-01 11:35:37,473 [INFO] 回合 290, 步数 131, 奖励 0.0, 总步数 50735\n",
      "2019-01-01 11:35:57,136 [INFO] 回合 291, 步数 145, 奖励 0.0, 总步数 50881\n",
      "2019-01-01 11:36:15,088 [INFO] 回合 292, 步数 132, 奖励 0.0, 总步数 51014\n",
      "2019-01-01 11:36:25,956 [INFO] 训练 12700, 回合 0.9542809000015052, 存储大小 50000, 损失 3.099538298556581e-05\n",
      "2019-01-01 11:36:40,743 [INFO] 回合 293, 步数 188, 奖励 2.0, 总步数 51203\n",
      "2019-01-01 11:37:01,986 [INFO] 回合 294, 步数 160, 奖励 1.0, 总步数 51364\n",
      "2019-01-01 11:37:19,918 [INFO] 训练 12800, 回合 0.9539209000015171, 存储大小 50000, 损失 2.4297041818499565e-05\n",
      "2019-01-01 11:37:46,797 [INFO] 回合 295, 步数 331, 奖励 5.0, 总步数 51696\n",
      "2019-01-01 11:38:08,670 [INFO] 回合 296, 步数 162, 奖励 0.0, 总步数 51859\n",
      "2019-01-01 11:38:14,046 [INFO] 训练 12900, 回合 0.9535609000015289, 存储大小 50000, 损失 2.4311124434461817e-05\n",
      "2019-01-01 11:38:34,182 [INFO] 回合 297, 步数 187, 奖励 1.0, 总步数 52047\n",
      "2019-01-01 11:38:51,926 [INFO] 回合 298, 步数 134, 奖励 0.0, 总步数 52182\n",
      "2019-01-01 11:39:07,809 [INFO] 训练 13000, 回合 0.9532009000015408, 存储大小 50000, 损失 1.7079779354389757e-05\n",
      "2019-01-01 11:39:38,293 [INFO] 回合 299, 步数 344, 奖励 5.0, 总步数 52527\n",
      "2019-01-01 11:40:01,652 [INFO] 训练 13100, 回合 0.9528409000015526, 存储大小 50000, 损失 0.0003509386442601681\n",
      "2019-01-01 11:40:05,398 [INFO] 回合 300, 步数 204, 奖励 2.0, 总步数 52732\n",
      "2019-01-01 11:40:25,939 [INFO] 回合 301, 步数 152, 奖励 0.0, 总步数 52885\n",
      "2019-01-01 11:40:49,573 [INFO] 回合 302, 步数 176, 奖励 1.0, 总步数 53062\n",
      "2019-01-01 11:40:55,462 [INFO] 训练 13200, 回合 0.9524809000015645, 存储大小 50000, 损失 1.1490208635223098e-05\n",
      "2019-01-01 11:41:28,413 [INFO] 回合 303, 步数 287, 奖励 4.0, 总步数 53350\n",
      "2019-01-01 11:41:49,561 [INFO] 训练 13300, 回合 0.9521209000015763, 存储大小 50000, 损失 3.5866498365066946e-05\n",
      "2019-01-01 11:41:55,781 [INFO] 回合 304, 步数 204, 奖励 2.0, 总步数 53555\n",
      "2019-01-01 11:42:18,754 [INFO] 回合 305, 步数 169, 奖励 1.0, 总步数 53725\n",
      "2019-01-01 11:42:36,868 [INFO] 回合 306, 步数 132, 奖励 0.0, 总步数 53858\n",
      "2019-01-01 11:42:43,827 [INFO] 训练 13400, 回合 0.9517609000015882, 存储大小 50000, 损失 1.8422786524752155e-05\n",
      "2019-01-01 11:42:55,954 [INFO] 回合 307, 步数 138, 奖励 0.0, 总步数 53997\n",
      "2019-01-01 11:43:29,422 [INFO] 回合 308, 步数 250, 奖励 3.0, 总步数 54248\n",
      "2019-01-01 11:43:37,931 [INFO] 训练 13500, 回合 0.9514009000016, 存储大小 50000, 损失 2.3991975467652082e-05\n",
      "2019-01-01 11:44:06,038 [INFO] 回合 309, 步数 272, 奖励 3.0, 总步数 54521\n",
      "2019-01-01 11:44:23,145 [INFO] 回合 310, 步数 128, 奖励 0.0, 总步数 54650\n",
      "2019-01-01 11:44:31,746 [INFO] 训练 13600, 回合 0.9510409000016119, 存储大小 50000, 损失 1.244247869180981e-05\n",
      "2019-01-01 11:44:48,990 [INFO] 回合 311, 步数 190, 奖励 1.0, 总步数 54841\n",
      "2019-01-01 11:45:08,049 [INFO] 回合 312, 步数 141, 奖励 0.0, 总步数 54983\n",
      "2019-01-01 11:45:25,741 [INFO] 训练 13700, 回合 0.9506809000016238, 存储大小 50000, 损失 3.6002460547024384e-05\n",
      "2019-01-01 11:45:28,461 [INFO] 回合 313, 步数 151, 奖励 0.0, 总步数 55135\n",
      "2019-01-01 11:45:53,415 [INFO] 回合 314, 步数 189, 奖励 1.0, 总步数 55325\n",
      "2019-01-01 11:46:15,764 [INFO] 回合 315, 步数 167, 奖励 1.0, 总步数 55493\n",
      "2019-01-01 11:46:19,053 [INFO] 训练 13800, 回合 0.9503209000016356, 存储大小 50000, 损失 6.92093963152729e-05\n",
      "2019-01-01 11:46:39,050 [INFO] 回合 316, 步数 174, 奖励 1.0, 总步数 55668\n",
      "2019-01-01 11:46:56,743 [INFO] 回合 317, 步数 129, 奖励 0.0, 总步数 55798\n",
      "2019-01-01 11:47:12,454 [INFO] 训练 13900, 回合 0.9499609000016475, 存储大小 50000, 损失 1.2073314792360179e-05\n",
      "2019-01-01 11:47:24,211 [INFO] 回合 318, 步数 211, 奖励 2.0, 总步数 56010\n",
      "2019-01-01 11:47:41,853 [INFO] 回合 319, 步数 130, 奖励 0.0, 总步数 56141\n",
      "2019-01-01 11:48:05,825 [INFO] 训练 14000, 回合 0.9496009000016593, 存储大小 50000, 损失 9.208151823258959e-06\n",
      "2019-01-01 11:48:06,429 [INFO] 回合 320, 步数 185, 奖励 2.0, 总步数 56327\n",
      "2019-01-01 11:48:40,887 [INFO] 回合 321, 步数 255, 奖励 3.0, 总步数 56583\n",
      "2019-01-01 11:48:59,177 [INFO] 回合 322, 步数 138, 奖励 0.0, 总步数 56722\n",
      "2019-01-01 11:48:59,668 [INFO] 训练 14100, 回合 0.9492409000016712, 存储大小 50000, 损失 1.974400584003888e-05\n",
      "2019-01-01 11:49:25,478 [INFO] 回合 323, 步数 200, 奖励 2.0, 总步数 56923\n",
      "2019-01-01 11:49:51,344 [INFO] 回合 324, 步数 193, 奖励 1.0, 总步数 57117\n",
      "2019-01-01 11:49:52,480 [INFO] 训练 14200, 回合 0.948880900001683, 存储大小 50000, 损失 0.00032768098753876984\n",
      "2019-01-01 11:50:22,261 [INFO] 回合 325, 步数 234, 奖励 2.0, 总步数 57352\n",
      "2019-01-01 11:50:45,217 [INFO] 回合 326, 步数 171, 奖励 1.0, 总步数 57524\n",
      "2019-01-01 11:50:45,754 [INFO] 训练 14300, 回合 0.9485209000016949, 存储大小 50000, 损失 1.886394602479413e-05\n",
      "2019-01-01 11:51:13,340 [INFO] 回合 327, 步数 214, 奖励 2.0, 总步数 57739\n",
      "2019-01-01 11:51:31,730 [INFO] 回合 328, 步数 138, 奖励 0.0, 总步数 57878\n",
      "2019-01-01 11:51:38,507 [INFO] 训练 14400, 回合 0.9481609000017067, 存储大小 50000, 损失 1.6527750631212257e-05\n",
      "2019-01-01 11:51:50,464 [INFO] 回合 329, 步数 140, 奖励 0.0, 总步数 58019\n",
      "2019-01-01 11:52:14,973 [INFO] 回合 330, 步数 180, 奖励 1.0, 总步数 58200\n",
      "2019-01-01 11:52:32,416 [INFO] 训练 14500, 回合 0.9478009000017186, 存储大小 50000, 损失 7.186810762505047e-06\n",
      "2019-01-01 11:52:39,120 [INFO] 回合 331, 步数 180, 奖励 1.0, 总步数 58381\n",
      "2019-01-01 11:52:57,333 [INFO] 回合 332, 步数 137, 奖励 0.0, 总步数 58519\n",
      "2019-01-01 11:53:24,025 [INFO] 回合 333, 步数 201, 奖励 2.0, 总步数 58721\n",
      "2019-01-01 11:53:26,094 [INFO] 训练 14600, 回合 0.9474409000017304, 存储大小 50000, 损失 0.007775594014674425\n",
      "2019-01-01 11:53:45,652 [INFO] 回合 334, 步数 160, 奖励 1.0, 总步数 58882\n",
      "2019-01-01 11:54:18,845 [INFO] 回合 335, 步数 248, 奖励 3.0, 总步数 59131\n",
      "2019-01-01 11:54:19,866 [INFO] 训练 14700, 回合 0.9470809000017423, 存储大小 50000, 损失 4.3051059037679806e-05\n",
      "2019-01-01 11:54:49,080 [INFO] 回合 336, 步数 223, 奖励 2.0, 总步数 59355\n",
      "2019-01-01 11:55:14,072 [INFO] 训练 14800, 回合 0.9467209000017541, 存储大小 50000, 损失 4.614660156221362e-06\n",
      "2019-01-01 11:55:16,255 [INFO] 回合 337, 步数 200, 奖励 2.0, 总步数 59556\n",
      "2019-01-01 11:55:37,146 [INFO] 回合 338, 步数 154, 奖励 1.0, 总步数 59711\n",
      "2019-01-01 11:56:01,888 [INFO] 回合 339, 步数 190, 奖励 1.0, 总步数 59902\n",
      "2019-01-01 11:56:07,096 [INFO] 训练 14900, 回合 0.946360900001766, 存储大小 50000, 损失 0.00037580658681690693\n",
      "2019-01-01 11:56:20,479 [INFO] 回合 340, 步数 141, 奖励 0.0, 总步数 60044\n",
      "2019-01-01 11:56:37,325 [INFO] 回合 341, 步数 126, 奖励 0.0, 总步数 60171\n",
      "2019-01-01 11:57:00,398 [INFO] 训练 15000, 回合 0.9460009000017778, 存储大小 50000, 损失 0.007799014914780855\n",
      "2019-01-01 11:57:00,956 [INFO] 回合 342, 步数 175, 奖励 1.0, 总步数 60347\n",
      "2019-01-01 11:57:27,032 [INFO] 回合 343, 步数 196, 奖励 1.0, 总步数 60544\n",
      "2019-01-01 11:57:53,751 [INFO] 训练 15100, 回合 0.9456409000017897, 存储大小 50000, 损失 0.0003408841439522803\n",
      "2019-01-01 11:57:56,373 [INFO] 回合 344, 步数 220, 奖励 2.0, 总步数 60765\n",
      "2019-01-01 11:58:19,045 [INFO] 回合 345, 步数 170, 奖励 1.0, 总步数 60936\n",
      "2019-01-01 11:58:41,479 [INFO] 回合 346, 步数 168, 奖励 1.0, 总步数 61105\n",
      "2019-01-01 11:58:47,134 [INFO] 训练 15200, 回合 0.9452809000018015, 存储大小 50000, 损失 9.39625078899553e-06\n",
      "2019-01-01 11:58:58,907 [INFO] 回合 347, 步数 130, 奖励 0.0, 总步数 61236\n",
      "2019-01-01 11:59:17,311 [INFO] 回合 348, 步数 141, 奖励 0.0, 总步数 61378\n",
      "2019-01-01 11:59:35,078 [INFO] 回合 349, 步数 131, 奖励 0.0, 总步数 61510\n",
      "2019-01-01 11:59:40,361 [INFO] 训练 15300, 回合 0.9449209000018134, 存储大小 50000, 损失 0.0003890910593327135\n",
      "2019-01-01 11:59:52,378 [INFO] 回合 350, 步数 133, 奖励 0.0, 总步数 61644\n",
      "2019-01-01 12:00:18,850 [INFO] 回合 351, 步数 200, 奖励 2.0, 总步数 61845\n",
      "2019-01-01 12:00:32,791 [INFO] 训练 15400, 回合 0.9445609000018252, 存储大小 50000, 损失 7.775835001666564e-06\n",
      "2019-01-01 12:00:36,603 [INFO] 回合 352, 步数 137, 奖励 0.0, 总步数 61983\n",
      "2019-01-01 12:01:19,439 [INFO] 回合 353, 步数 322, 奖励 5.0, 总步数 62306\n",
      "2019-01-01 12:01:25,749 [INFO] 训练 15500, 回合 0.9442009000018371, 存储大小 50000, 损失 1.0648524039424956e-05\n",
      "2019-01-01 12:01:36,856 [INFO] 回合 354, 步数 133, 奖励 0.0, 总步数 62440\n",
      "2019-01-01 12:02:13,514 [INFO] 回合 355, 步数 273, 奖励 3.0, 总步数 62714\n",
      "2019-01-01 12:02:19,471 [INFO] 训练 15600, 回合 0.943840900001849, 存储大小 50000, 损失 2.9485434424714185e-05\n",
      "2019-01-01 12:02:44,539 [INFO] 回合 356, 步数 251, 奖励 3.0, 总步数 62966\n",
      "2019-01-01 12:02:58,879 [INFO] 回合 357, 步数 132, 奖励 0.0, 总步数 63099\n",
      "2019-01-01 12:03:05,584 [INFO] 训练 15700, 回合 0.9434809000018608, 存储大小 50000, 损失 1.1764206647058018e-05\n",
      "2019-01-01 12:03:20,002 [INFO] 回合 358, 步数 190, 奖励 1.0, 总步数 63290\n",
      "2019-01-01 12:03:36,067 [INFO] 回合 359, 步数 146, 奖励 0.0, 总步数 63437\n",
      "2019-01-01 12:03:49,448 [INFO] 训练 15800, 回合 0.9431209000018727, 存储大小 50000, 损失 8.637462087790482e-06\n",
      "2019-01-01 12:03:53,400 [INFO] 回合 360, 步数 160, 奖励 1.0, 总步数 63598\n",
      "2019-01-01 12:04:16,199 [INFO] 回合 361, 步数 207, 奖励 2.0, 总步数 63806\n",
      "2019-01-01 12:04:31,976 [INFO] 回合 362, 步数 144, 奖励 0.0, 总步数 63951\n",
      "2019-01-01 12:04:33,299 [INFO] 训练 15900, 回合 0.9427609000018845, 存储大小 50000, 损失 1.066931235982338e-05\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "2019-01-01 12:04:52,185 [INFO] 回合 363, 步数 187, 奖励 1.0, 总步数 64139\n",
      "2019-01-01 12:05:06,640 [INFO] 回合 364, 步数 129, 奖励 0.0, 总步数 64269\n",
      "2019-01-01 12:05:17,233 [INFO] 训练 16000, 回合 0.9424009000018964, 存储大小 50000, 损失 1.6038948160712607e-05\n",
      "2019-01-01 12:05:17,280 [INFO] 目标网络已更新\n",
      "2019-01-01 12:05:28,783 [INFO] 回合 365, 步数 202, 奖励 2.0, 总步数 64472\n",
      "2019-01-01 12:05:57,993 [INFO] 回合 366, 步数 262, 奖励 3.0, 总步数 64735\n",
      "2019-01-01 12:06:01,405 [INFO] 训练 16100, 回合 0.9420409000019082, 存储大小 50000, 损失 3.77221658709459e-05\n",
      "2019-01-01 12:06:22,403 [INFO] 回合 367, 步数 225, 奖励 2.0, 总步数 64961\n",
      "2019-01-01 12:06:45,427 [INFO] 训练 16200, 回合 0.9416809000019201, 存储大小 50000, 损失 1.456985319236992e-05\n",
      "2019-01-01 12:06:47,798 [INFO] 回合 368, 步数 229, 奖励 2.0, 总步数 65191\n",
      "2019-01-01 12:07:03,149 [INFO] 回合 369, 步数 141, 奖励 0.0, 总步数 65333\n",
      "2019-01-01 12:07:18,066 [INFO] 回合 370, 步数 135, 奖励 0.0, 总步数 65469\n",
      "2019-01-01 12:07:29,328 [INFO] 训练 16300, 回合 0.9413209000019319, 存储大小 50000, 损失 6.307307558017783e-06\n",
      "2019-01-01 12:07:38,324 [INFO] 回合 371, 步数 183, 奖励 1.0, 总步数 65653\n",
      "2019-01-01 12:07:52,191 [INFO] 回合 372, 步数 126, 奖励 0.0, 总步数 65780\n",
      "2019-01-01 12:08:13,484 [INFO] 训练 16400, 回合 0.9409609000019438, 存储大小 50000, 损失 2.851990211638622e-05\n",
      "2019-01-01 12:08:16,588 [INFO] 回合 373, 步数 224, 奖励 3.0, 总步数 66005\n",
      "2019-01-01 12:08:50,585 [INFO] 回合 374, 步数 311, 奖励 4.0, 总步数 66317\n",
      "2019-01-01 12:08:56,994 [INFO] 训练 16500, 回合 0.9406009000019556, 存储大小 50000, 损失 0.00035935512278229\n",
      "2019-01-01 12:09:08,339 [INFO] 回合 375, 步数 164, 奖励 1.0, 总步数 66482\n",
      "2019-01-01 12:09:26,253 [INFO] 回合 376, 步数 163, 奖励 1.0, 总步数 66646\n",
      "2019-01-01 12:09:40,797 [INFO] 训练 16600, 回合 0.9402409000019675, 存储大小 50000, 损失 0.007734647952020168\n",
      "2019-01-01 12:09:43,707 [INFO] 回合 377, 步数 155, 奖励 1.0, 总步数 66802\n",
      "2019-01-01 12:10:06,657 [INFO] 回合 378, 步数 214, 奖励 2.0, 总步数 67017\n",
      "2019-01-01 12:10:25,079 [INFO] 训练 16700, 回合 0.9398809000019793, 存储大小 50000, 损失 1.5882193110883236e-05\n",
      "2019-01-01 12:10:27,319 [INFO] 回合 379, 步数 182, 奖励 1.0, 总步数 67200\n",
      "2019-01-01 12:10:40,738 [INFO] 回合 380, 步数 125, 奖励 0.0, 总步数 67326\n",
      "2019-01-01 12:10:54,497 [INFO] 回合 381, 步数 129, 奖励 0.0, 总步数 67456\n",
      "2019-01-01 12:11:08,441 [INFO] 训练 16800, 回合 0.9395209000019912, 存储大小 50000, 损失 6.011104687786428e-06\n",
      "2019-01-01 12:11:17,184 [INFO] 回合 382, 步数 209, 奖励 2.0, 总步数 67666\n",
      "2019-01-01 12:11:48,315 [INFO] 回合 383, 步数 280, 奖励 3.0, 总步数 67947\n",
      "2019-01-01 12:11:52,654 [INFO] 训练 16900, 回合 0.939160900002003, 存储大小 50000, 损失 6.815835149609484e-06\n",
      "2019-01-01 12:12:05,703 [INFO] 回合 384, 步数 157, 奖励 1.0, 总步数 68105\n",
      "2019-01-01 12:12:26,935 [INFO] 回合 385, 步数 197, 奖励 2.0, 总步数 68303\n",
      "2019-01-01 12:12:36,142 [INFO] 训练 17000, 回合 0.9388009000020149, 存储大小 50000, 损失 6.264790135901421e-05\n",
      "2019-01-01 12:12:41,638 [INFO] 回合 386, 步数 134, 奖励 0.0, 总步数 68438\n",
      "2019-01-01 12:12:58,726 [INFO] 回合 387, 步数 155, 奖励 1.0, 总步数 68594\n",
      "2019-01-01 12:13:14,957 [INFO] 回合 388, 步数 151, 奖励 0.0, 总步数 68746\n",
      "2019-01-01 12:13:19,616 [INFO] 训练 17100, 回合 0.9384409000020267, 存储大小 50000, 损失 5.561337275139522e-06\n",
      "2019-01-01 12:13:29,857 [INFO] 回合 389, 步数 136, 奖励 0.0, 总步数 68883\n",
      "2019-01-01 12:13:51,771 [INFO] 回合 390, 步数 201, 奖励 2.0, 总步数 69085\n",
      "2019-01-01 12:14:03,426 [INFO] 训练 17200, 回合 0.9380809000020386, 存储大小 50000, 损失 0.00040803817682899535\n",
      "2019-01-01 12:14:09,173 [INFO] 回合 391, 步数 158, 奖励 1.0, 总步数 69244\n",
      "2019-01-01 12:14:28,674 [INFO] 回合 392, 步数 180, 奖励 1.0, 总步数 69425\n",
      "2019-01-01 12:14:43,058 [INFO] 回合 393, 步数 132, 奖励 0.0, 总步数 69558\n",
      "2019-01-01 12:14:46,873 [INFO] 训练 17300, 回合 0.9377209000020504, 存储大小 50000, 损失 9.41430771490559e-05\n",
      "2019-01-01 12:15:08,124 [INFO] 回合 394, 步数 230, 奖励 2.0, 总步数 69789\n",
      "2019-01-01 12:15:23,876 [INFO] 回合 395, 步数 144, 奖励 0.0, 总步数 69934\n",
      "2019-01-01 12:15:30,821 [INFO] 训练 17400, 回合 0.9373609000020623, 存储大小 50000, 损失 1.719369538477622e-05\n",
      "2019-01-01 12:15:41,482 [INFO] 回合 396, 步数 161, 奖励 1.0, 总步数 70096\n",
      "2019-01-01 12:15:58,986 [INFO] 回合 397, 步数 161, 奖励 1.0, 总步数 70258\n",
      "2019-01-01 12:16:14,370 [INFO] 训练 17500, 回合 0.9370009000020741, 存储大小 50000, 损失 1.0790076885314193e-05\n",
      "2019-01-01 12:16:23,356 [INFO] 回合 398, 步数 222, 奖励 2.0, 总步数 70481\n",
      "2019-01-01 12:16:39,424 [INFO] 回合 399, 步数 149, 奖励 0.0, 总步数 70631\n",
      "2019-01-01 12:16:53,787 [INFO] 回合 400, 步数 131, 奖励 0.0, 总步数 70763\n",
      "2019-01-01 12:16:58,028 [INFO] 训练 17600, 回合 0.936640900002086, 存储大小 50000, 损失 0.0079237911850214\n",
      "2019-01-01 12:17:11,838 [INFO] 回合 401, 步数 167, 奖励 1.0, 总步数 70931\n",
      "2019-01-01 12:17:26,098 [INFO] 回合 402, 步数 131, 奖励 0.0, 总步数 71063\n",
      "2019-01-01 12:17:41,457 [INFO] 训练 17700, 回合 0.9362809000020978, 存储大小 50000, 损失 5.852763570146635e-05\n",
      "2019-01-01 12:17:45,400 [INFO] 回合 403, 步数 176, 奖励 1.0, 总步数 71240\n",
      "2019-01-01 12:17:59,873 [INFO] 回合 404, 步数 134, 奖励 0.0, 总步数 71375\n",
      "2019-01-01 12:18:24,892 [INFO] 回合 405, 步数 226, 奖励 2.0, 总步数 71602\n",
      "2019-01-01 12:18:25,360 [INFO] 训练 17800, 回合 0.9359209000021097, 存储大小 50000, 损失 0.00038786992081440985\n",
      "2019-01-01 12:18:49,650 [INFO] 回合 406, 步数 227, 奖励 2.0, 总步数 71830\n",
      "2019-01-01 12:19:08,582 [INFO] 回合 407, 步数 175, 奖励 1.0, 总步数 72006\n",
      "2019-01-01 12:19:08,983 [INFO] 训练 17900, 回合 0.9355609000021216, 存储大小 50000, 损失 1.8474691387382336e-05\n",
      "2019-01-01 12:19:23,342 [INFO] 回合 408, 步数 137, 奖励 0.0, 总步数 72144\n",
      "2019-01-01 12:19:41,721 [INFO] 回合 409, 步数 165, 奖励 1.0, 总步数 72310\n",
      "2019-01-01 12:19:52,534 [INFO] 训练 18000, 回合 0.9352009000021334, 存储大小 50000, 损失 8.10366964287823e-06\n",
      "2019-01-01 12:19:58,687 [INFO] 回合 410, 步数 158, 奖励 1.0, 总步数 72469\n",
      "2019-01-01 12:20:13,041 [INFO] 回合 411, 步数 132, 奖励 0.0, 总步数 72602\n",
      "2019-01-01 12:20:33,256 [INFO] 回合 412, 步数 188, 奖励 1.0, 总步数 72791\n",
      "2019-01-01 12:20:35,772 [INFO] 训练 18100, 回合 0.9348409000021453, 存储大小 50000, 损失 0.007669796235859394\n",
      "2019-01-01 12:20:57,652 [INFO] 回合 413, 步数 228, 奖励 2.0, 总步数 73020\n",
      "2019-01-01 12:21:18,901 [INFO] 训练 18200, 回合 0.9344809000021571, 存储大小 50000, 损失 0.0073930369690060616\n",
      "2019-01-01 12:21:20,650 [INFO] 回合 414, 步数 210, 奖励 2.0, 总步数 73231\n",
      "2019-01-01 12:21:35,691 [INFO] 回合 415, 步数 142, 奖励 0.0, 总步数 73374\n",
      "2019-01-01 12:21:51,603 [INFO] 回合 416, 步数 147, 奖励 0.0, 总步数 73522\n",
      "2019-01-01 12:22:02,041 [INFO] 训练 18300, 回合 0.934120900002169, 存储大小 50000, 损失 2.0333347492851317e-05\n",
      "2019-01-01 12:22:07,593 [INFO] 回合 417, 步数 147, 奖励 0.0, 总步数 73670\n",
      "2019-01-01 12:22:30,663 [INFO] 回合 418, 步数 218, 奖励 3.0, 总步数 73889\n",
      "2019-01-01 12:22:44,646 [INFO] 训练 18400, 回合 0.9337609000021808, 存储大小 50000, 损失 0.014970705844461918\n",
      "2019-01-01 12:22:50,196 [INFO] 回合 419, 步数 183, 奖励 1.0, 总步数 74073\n",
      "2019-01-01 12:23:09,026 [INFO] 回合 420, 步数 178, 奖励 1.0, 总步数 74252\n",
      "2019-01-01 12:23:26,565 [INFO] 回合 421, 步数 162, 奖励 1.0, 总步数 74415\n",
      "2019-01-01 12:23:27,450 [INFO] 训练 18500, 回合 0.9334009000021927, 存储大小 50000, 损失 0.007946936413645744\n",
      "2019-01-01 12:23:57,999 [INFO] 回合 422, 步数 298, 奖励 4.0, 总步数 74714\n",
      "2019-01-01 12:24:09,820 [INFO] 训练 18600, 回合 0.9330409000022045, 存储大小 50000, 损失 4.4281455302552786e-06\n",
      "2019-01-01 12:24:12,898 [INFO] 回合 423, 步数 138, 奖励 0.0, 总步数 74853\n",
      "2019-01-01 12:24:27,003 [INFO] 回合 424, 步数 127, 奖励 0.0, 总步数 74981\n",
      "2019-01-01 12:24:33,886 [INFO] [测试] 回合 0: 步骤 151, 奖励 1.0, 步数 151\n",
      "2019-01-01 12:24:42,750 [INFO] [测试] 回合 1: 步骤 239, 奖励 3.0, 步数 390\n",
      "2019-01-01 12:24:47,881 [INFO] [测试] 回合 2: 步骤 150, 奖励 1.0, 步数 540\n",
      "2019-01-01 12:24:52,152 [INFO] [测试] 回合 3: 步骤 127, 奖励 0.0, 步数 667\n",
      "2019-01-01 12:24:58,365 [INFO] [测试] 回合 4: 步骤 186, 奖励 2.0, 步数 853\n",
      "2019-01-01 12:25:04,366 [INFO] [测试] 回合 5: 步骤 171, 奖励 1.0, 步数 1024\n",
      "2019-01-01 12:25:10,268 [INFO] [测试] 回合 6: 步骤 171, 奖励 1.0, 步数 1195\n",
      "2019-01-01 12:25:14,505 [INFO] [测试] 回合 7: 步骤 124, 奖励 0.0, 步数 1319\n",
      "2019-01-01 12:25:19,236 [INFO] [测试] 回合 8: 步骤 128, 奖励 0.0, 步数 1447\n",
      "2019-01-01 12:25:23,225 [INFO] [测试] 回合 9: 步骤 122, 奖励 0.0, 步数 1569\n",
      "2019-01-01 12:25:28,470 [INFO] [测试] 回合 10: 步骤 154, 奖励 1.0, 步数 1723\n",
      "2019-01-01 12:25:34,566 [INFO] [测试] 回合 11: 步骤 173, 奖励 1.0, 步数 1896\n",
      "2019-01-01 12:25:41,778 [INFO] [测试] 回合 12: 步骤 202, 奖励 2.0, 步数 2098\n",
      "2019-01-01 12:25:48,884 [INFO] [测试] 回合 13: 步骤 202, 奖励 2.0, 步数 2300\n",
      "2019-01-01 12:25:53,289 [INFO] [测试] 回合 14: 步骤 128, 奖励 0.0, 步数 2428\n",
      "2019-01-01 12:25:57,262 [INFO] [测试] 回合 15: 步骤 123, 奖励 0.0, 步数 2551\n",
      "2019-01-01 12:26:02,559 [INFO] [测试] 回合 16: 步骤 151, 奖励 1.0, 步数 2702\n",
      "2019-01-01 12:26:07,778 [INFO] [测试] 回合 17: 步骤 153, 奖励 1.0, 步数 2855\n",
      "2019-01-01 12:26:14,834 [INFO] [测试] 回合 18: 步骤 198, 奖励 2.0, 步数 3053\n",
      "2019-01-01 12:26:21,315 [INFO] [测试] 回合 19: 步骤 184, 奖励 2.0, 步数 3237\n",
      "2019-01-01 12:26:29,677 [INFO] [测试] 回合 20: 步骤 230, 奖励 3.0, 步数 3467\n",
      "2019-01-01 12:26:33,796 [INFO] [测试] 回合 21: 步骤 122, 奖励 0.0, 步数 3589\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "2019-01-01 12:26:41,386 [INFO] [测试] 回合 22: 步骤 229, 奖励 3.0, 步数 3818\n",
      "2019-01-01 12:26:44,528 [INFO] [测试] 回合 23: 步骤 127, 奖励 0.0, 步数 3945\n",
      "2019-01-01 12:26:49,858 [INFO] [测试] 回合 24: 步骤 202, 奖励 2.0, 步数 4147\n",
      "2019-01-01 12:26:54,289 [INFO] [测试] 回合 25: 步骤 171, 奖励 1.0, 步数 4318\n",
      "2019-01-01 12:26:57,293 [INFO] [测试] 回合 26: 步骤 123, 奖励 0.0, 步数 4441\n",
      "2019-01-01 12:27:00,332 [INFO] [测试] 回合 27: 步骤 127, 奖励 0.0, 步数 4568\n",
      "2019-01-01 12:27:03,463 [INFO] [测试] 回合 28: 步骤 128, 奖励 0.0, 步数 4696\n",
      "2019-01-01 12:27:08,586 [INFO] [测试] 回合 29: 步骤 198, 奖励 2.0, 步数 4894\n",
      "2019-01-01 12:27:11,673 [INFO] [测试] 回合 30: 步骤 128, 奖励 0.0, 步数 5022\n",
      "2019-01-01 12:27:14,856 [INFO] [测试] 回合 31: 步骤 129, 奖励 0.0, 步数 5151\n",
      "2019-01-01 12:27:18,079 [INFO] [测试] 回合 32: 步骤 130, 奖励 0.0, 步数 5281\n",
      "2019-01-01 12:27:22,342 [INFO] [测试] 回合 33: 步骤 168, 奖励 1.0, 步数 5449\n",
      "2019-01-01 12:27:25,422 [INFO] [测试] 回合 34: 步骤 125, 奖励 0.0, 步数 5574\n",
      "2019-01-01 12:27:28,585 [INFO] [测试] 回合 35: 步骤 131, 奖励 0.0, 步数 5705\n",
      "2019-01-01 12:27:33,879 [INFO] [测试] 回合 36: 步骤 203, 奖励 2.0, 步数 5908\n",
      "2019-01-01 12:27:37,754 [INFO] [测试] 回合 37: 步骤 152, 奖励 1.0, 步数 6060\n",
      "2019-01-01 12:27:43,689 [INFO] [测试] 回合 38: 步骤 224, 奖励 2.0, 步数 6284\n",
      "2019-01-01 12:27:48,980 [INFO] [测试] 回合 39: 步骤 202, 奖励 2.0, 步数 6486\n",
      "2019-01-01 12:27:52,187 [INFO] [测试] 回合 40: 步骤 130, 奖励 0.0, 步数 6616\n",
      "2019-01-01 12:27:57,499 [INFO] [测试] 回合 41: 步骤 202, 奖励 2.0, 步数 6818\n",
      "2019-01-01 12:28:02,980 [INFO] [测试] 回合 42: 步骤 208, 奖励 2.0, 步数 7026\n",
      "2019-01-01 12:28:06,984 [INFO] [测试] 回合 43: 步骤 157, 奖励 1.0, 步数 7183\n",
      "2019-01-01 12:28:12,397 [INFO] [测试] 回合 44: 步骤 208, 奖励 2.0, 步数 7391\n",
      "2019-01-01 12:28:15,578 [INFO] [测试] 回合 45: 步骤 128, 奖励 0.0, 步数 7519\n",
      "2019-01-01 12:28:18,607 [INFO] [测试] 回合 46: 步骤 127, 奖励 0.0, 步数 7646\n",
      "2019-01-01 12:28:21,606 [INFO] [测试] 回合 47: 步骤 122, 奖励 0.0, 步数 7768\n",
      "2019-01-01 12:28:24,712 [INFO] [测试] 回合 48: 步骤 126, 奖励 0.0, 步数 7894\n",
      "2019-01-01 12:28:29,970 [INFO] [测试] 回合 49: 步骤 202, 奖励 2.0, 步数 8096\n",
      "2019-01-01 12:28:29,970 [INFO] [测试小结] 步数: 平均 = 161.92, 最小 = 122, 最大 = 239.\n",
      "2019-01-01 12:28:29,970 [INFO] [测试小结] 奖励: 平均 = 0.98, 最小 = 0.0, 最大 = 3.0\n",
      "2019-01-01 12:28:30,324 [INFO] 回合 425, 步数 20, 奖励 0.0, 总步数 75002\n",
      "2019-01-01 12:28:43,219 [INFO] 回合 426, 步数 144, 奖励 0.0, 总步数 75147\n",
      "2019-01-01 12:28:50,300 [INFO] 训练 18700, 回合 0.9326809000022164, 存储大小 50000, 损失 9.525332643534057e-06\n",
      "2019-01-01 12:29:05,389 [INFO] 回合 427, 步数 249, 奖励 3.0, 总步数 75397\n",
      "2019-01-01 12:29:21,914 [INFO] 回合 428, 步数 184, 奖励 1.0, 总步数 75582\n",
      "2019-01-01 12:29:26,219 [INFO] 训练 18800, 回合 0.9323209000022282, 存储大小 50000, 损失 1.7096594092436135e-05\n",
      "2019-01-01 12:29:39,548 [INFO] 回合 429, 步数 195, 奖励 1.0, 总步数 75778\n",
      "2019-01-01 12:29:52,770 [INFO] 回合 430, 步数 144, 奖励 0.0, 总步数 75923\n",
      "2019-01-01 12:30:02,557 [INFO] 训练 18900, 回合 0.9319609000022401, 存储大小 50000, 损失 3.934251799364574e-05\n",
      "2019-01-01 12:30:06,929 [INFO] 回合 431, 步数 157, 奖励 1.0, 总步数 76081\n",
      "2019-01-01 12:30:19,116 [INFO] 回合 432, 步数 137, 奖励 0.0, 总步数 76219\n",
      "2019-01-01 12:30:31,751 [INFO] 回合 433, 步数 139, 奖励 0.0, 总步数 76359\n",
      "2019-01-01 12:30:38,568 [INFO] 训练 19000, 回合 0.9316009000022519, 存储大小 50000, 损失 0.007822345942258835\n",
      "2019-01-01 12:30:46,570 [INFO] 回合 434, 步数 163, 奖励 1.0, 总步数 76523\n",
      "2019-01-01 12:31:11,908 [INFO] 回合 435, 步数 283, 奖励 3.0, 总步数 76807\n",
      "2019-01-01 12:31:14,737 [INFO] 训练 19100, 回合 0.9312409000022638, 存储大小 50000, 损失 8.670875104144216e-06\n",
      "2019-01-01 12:31:25,110 [INFO] 回合 436, 步数 145, 奖励 0.0, 总步数 76953\n",
      "2019-01-01 12:31:46,561 [INFO] 回合 437, 步数 236, 奖励 3.0, 总步数 77190\n",
      "2019-01-01 12:31:50,873 [INFO] 训练 19200, 回合 0.9308809000022756, 存储大小 50000, 损失 1.1151324542879593e-05\n",
      "2019-01-01 12:31:57,704 [INFO] 回合 438, 步数 127, 奖励 0.0, 总步数 77318\n",
      "2019-01-01 12:32:16,952 [INFO] 回合 439, 步数 213, 奖励 2.0, 总步数 77532\n",
      "2019-01-01 12:32:26,767 [INFO] 训练 19300, 回合 0.9305209000022875, 存储大小 50000, 损失 0.007949656806886196\n",
      "2019-01-01 12:32:34,047 [INFO] 回合 440, 步数 191, 奖励 1.0, 总步数 77724\n",
      "2019-01-01 12:32:48,841 [INFO] 回合 441, 步数 164, 奖励 1.0, 总步数 77889\n",
      "2019-01-01 12:33:02,773 [INFO] 训练 19400, 回合 0.9301609000022993, 存储大小 50000, 损失 1.7449776350986212e-05\n",
      "2019-01-01 12:33:10,332 [INFO] 回合 442, 步数 237, 奖励 3.0, 总步数 78127\n",
      "2019-01-01 12:33:38,749 [INFO] 训练 19500, 回合 0.9298009000023112, 存储大小 50000, 损失 0.022259775549173355\n",
      "2019-01-01 12:33:43,481 [INFO] 回合 443, 步数 370, 奖励 6.0, 总步数 78498\n",
      "2019-01-01 12:33:58,146 [INFO] 回合 444, 步数 163, 奖励 1.0, 总步数 78662\n",
      "2019-01-01 12:34:14,613 [INFO] 训练 19600, 回合 0.929440900002323, 存储大小 50000, 损失 1.4021945389686152e-05\n",
      "2019-01-01 12:34:31,676 [INFO] 回合 445, 步数 372, 奖励 6.0, 总步数 79035\n",
      "2019-01-01 12:34:46,319 [INFO] 回合 446, 步数 163, 奖励 1.0, 总步数 79199\n",
      "2019-01-01 12:34:50,679 [INFO] 训练 19700, 回合 0.9290809000023349, 存储大小 50000, 损失 0.007968852296471596\n",
      "2019-01-01 12:34:58,325 [INFO] 回合 447, 步数 133, 奖励 0.0, 总步数 79333\n",
      "2019-01-01 12:35:13,044 [INFO] 回合 448, 步数 164, 奖励 1.0, 总步数 79498\n",
      "2019-01-01 12:35:26,699 [INFO] 训练 19800, 回合 0.9287209000023467, 存储大小 50000, 损失 3.9318922063102946e-05\n",
      "2019-01-01 12:35:33,165 [INFO] 回合 449, 步数 225, 奖励 2.0, 总步数 79724\n",
      "2019-01-01 12:35:44,506 [INFO] 回合 450, 步数 128, 奖励 0.0, 总步数 79853\n",
      "2019-01-01 12:35:55,797 [INFO] 回合 451, 步数 129, 奖励 0.0, 总步数 79983\n",
      "2019-01-01 12:36:02,195 [INFO] 训练 19900, 回合 0.9283609000023586, 存储大小 50000, 损失 0.00746924988925457\n",
      "2019-01-01 12:36:12,009 [INFO] 回合 452, 步数 180, 奖励 1.0, 总步数 80164\n",
      "2019-01-01 12:36:31,235 [INFO] 回合 453, 步数 214, 奖励 2.0, 总步数 80379\n",
      "2019-01-01 12:36:38,021 [INFO] 训练 20000, 回合 0.9280009000023705, 存储大小 50000, 损失 3.120608744211495e-05\n",
      "2019-01-01 12:36:38,061 [INFO] 目标网络已更新\n",
      "2019-01-01 12:36:47,773 [INFO] 回合 454, 步数 183, 奖励 1.0, 总步数 80563\n",
      "2019-01-01 12:37:08,605 [INFO] 回合 455, 步数 232, 奖励 2.0, 总步数 80796\n",
      "2019-01-01 12:37:13,970 [INFO] 训练 20100, 回合 0.9276409000023823, 存储大小 50000, 损失 2.2241161786951125e-05\n",
      "2019-01-01 12:37:35,614 [INFO] 回合 456, 步数 303, 奖励 4.0, 总步数 81100\n",
      "2019-01-01 12:37:50,003 [INFO] 训练 20200, 回合 0.9272809000023942, 存储大小 50000, 损失 1.3855239558324683e-05\n",
      "2019-01-01 12:37:51,136 [INFO] 回合 457, 步数 171, 奖励 1.0, 总步数 81272\n",
      "2019-01-01 12:38:02,942 [INFO] 回合 458, 步数 130, 奖励 0.0, 总步数 81403\n",
      "2019-01-01 12:38:23,190 [INFO] 回合 459, 步数 227, 奖励 2.0, 总步数 81631\n",
      "2019-01-01 12:38:25,989 [INFO] 训练 20300, 回合 0.926920900002406, 存储大小 50000, 损失 2.2260534024098888e-05\n",
      "2019-01-01 12:38:37,181 [INFO] 回合 460, 步数 153, 奖励 0.0, 总步数 81785\n",
      "2019-01-01 12:38:59,200 [INFO] 回合 461, 步数 246, 奖励 3.0, 总步数 82032\n",
      "2019-01-01 12:39:02,009 [INFO] 训练 20400, 回合 0.9265609000024179, 存储大小 50000, 损失 4.530527803581208e-05\n",
      "2019-01-01 12:39:10,775 [INFO] 回合 462, 步数 128, 奖励 0.0, 总步数 82161\n",
      "2019-01-01 12:39:30,441 [INFO] 回合 463, 步数 214, 奖励 2.0, 总步数 82376\n",
      "2019-01-01 12:39:38,436 [INFO] 训练 20500, 回合 0.9262009000024297, 存储大小 50000, 损失 8.199976946343668e-06\n",
      "2019-01-01 12:39:42,875 [INFO] 回合 464, 步数 139, 奖励 0.0, 总步数 82516\n",
      "2019-01-01 12:39:54,775 [INFO] 回合 465, 步数 132, 奖励 0.0, 总步数 82649\n",
      "2019-01-01 12:40:11,111 [INFO] 回合 466, 步数 177, 奖励 1.0, 总步数 82827\n",
      "2019-01-01 12:40:14,726 [INFO] 训练 20600, 回合 0.9258409000024416, 存储大小 50000, 损失 0.0009418007684871554\n",
      "2019-01-01 12:40:23,337 [INFO] 回合 467, 步数 132, 奖励 0.0, 总步数 82960\n",
      "2019-01-01 12:40:42,426 [INFO] 回合 468, 步数 212, 奖励 2.0, 总步数 83173\n",
      "2019-01-01 12:40:50,958 [INFO] 训练 20700, 回合 0.9254809000024534, 存储大小 50000, 损失 2.0256040443200618e-05\n",
      "2019-01-01 12:40:58,460 [INFO] 回合 469, 步数 182, 奖励 1.0, 总步数 83356\n",
      "2019-01-01 12:41:11,178 [INFO] 回合 470, 步数 140, 奖励 0.0, 总步数 83497\n",
      "2019-01-01 12:41:23,300 [INFO] 回合 471, 步数 134, 奖励 0.0, 总步数 83632\n",
      "2019-01-01 12:41:26,854 [INFO] 训练 20800, 回合 0.9251209000024653, 存储大小 50000, 损失 7.1561644290341064e-06\n",
      "2019-01-01 12:41:55,483 [INFO] 回合 472, 步数 363, 奖励 5.0, 总步数 83996\n",
      "2019-01-01 12:42:02,666 [INFO] 训练 20900, 回合 0.9247609000024771, 存储大小 50000, 损失 6.605590442632092e-06\n",
      "2019-01-01 12:42:09,181 [INFO] 回合 473, 步数 151, 奖励 0.0, 总步数 84148\n",
      "2019-01-01 12:42:21,076 [INFO] 回合 474, 步数 133, 奖励 0.0, 总步数 84282\n",
      "2019-01-01 12:42:32,248 [INFO] 回合 475, 步数 124, 奖励 0.0, 总步数 84407\n",
      "2019-01-01 12:42:38,664 [INFO] 训练 21000, 回合 0.924400900002489, 存储大小 50000, 损失 0.007662137039005756\n",
      "2019-01-01 12:42:44,160 [INFO] 回合 476, 步数 130, 奖励 0.0, 总步数 84538\n",
      "2019-01-01 12:43:03,112 [INFO] 回合 477, 步数 212, 奖励 2.0, 总步数 84751\n",
      "2019-01-01 12:43:14,576 [INFO] 训练 21100, 回合 0.9240409000025008, 存储大小 50000, 损失 1.0818241207743995e-05\n",
      "2019-01-01 12:43:18,631 [INFO] 回合 478, 步数 173, 奖励 1.0, 总步数 84925\n",
      "2019-01-01 12:43:35,523 [INFO] 回合 479, 步数 186, 奖励 1.0, 总步数 85112\n",
      "2019-01-01 12:43:48,165 [INFO] 回合 480, 步数 144, 奖励 0.0, 总步数 85257\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "2019-01-01 12:43:50,333 [INFO] 训练 21200, 回合 0.9236809000025127, 存储大小 50000, 损失 7.574947085231543e-05\n",
      "2019-01-01 12:44:04,509 [INFO] 回合 481, 步数 182, 奖励 1.0, 总步数 85440\n",
      "2019-01-01 12:44:16,750 [INFO] 回合 482, 步数 135, 奖励 0.0, 总步数 85576\n",
      "2019-01-01 12:44:26,530 [INFO] 训练 21300, 回合 0.9233209000025245, 存储大小 50000, 损失 1.6860989489941858e-05\n",
      "2019-01-01 12:44:35,943 [INFO] 回合 483, 步数 214, 奖励 2.0, 总步数 85791\n",
      "2019-01-01 12:44:50,599 [INFO] 回合 484, 步数 161, 奖励 1.0, 总步数 85953\n",
      "2019-01-01 12:45:02,459 [INFO] 训练 21400, 回合 0.9229609000025364, 存储大小 50000, 损失 8.802755473880097e-06\n",
      "2019-01-01 12:45:02,459 [INFO] 回合 485, 步数 132, 奖励 0.0, 总步数 86086\n",
      "2019-01-01 12:45:14,848 [INFO] 回合 486, 步数 139, 奖励 0.0, 总步数 86226\n",
      "2019-01-01 12:45:27,474 [INFO] 回合 487, 步数 138, 奖励 0.0, 总步数 86365\n",
      "2019-01-01 12:45:38,668 [INFO] 训练 21500, 回合 0.9226009000025482, 存储大小 50000, 损失 1.6201463949983008e-05\n",
      "2019-01-01 12:45:40,229 [INFO] 回合 488, 步数 142, 奖励 0.0, 总步数 86508\n",
      "2019-01-01 12:46:10,024 [INFO] 回合 489, 步数 330, 奖励 5.0, 总步数 86839\n",
      "2019-01-01 12:46:14,720 [INFO] 训练 21600, 回合 0.9222409000025601, 存储大小 50000, 损失 0.000557522929739207\n",
      "2019-01-01 12:46:22,960 [INFO] 回合 490, 步数 144, 奖励 0.0, 总步数 86984\n",
      "2019-01-01 12:46:37,650 [INFO] 回合 491, 步数 163, 奖励 1.0, 总步数 87148\n",
      "2019-01-01 12:46:49,397 [INFO] 回合 492, 步数 134, 奖励 0.0, 总步数 87283\n",
      "2019-01-01 12:46:50,449 [INFO] 训练 21700, 回合 0.921880900002572, 存储大小 50000, 损失 2.82588825939456e-05\n",
      "2019-01-01 12:47:04,369 [INFO] 回合 493, 步数 168, 奖励 1.0, 总步数 87452\n",
      "2019-01-01 12:47:16,112 [INFO] 回合 494, 步数 132, 奖励 0.0, 总步数 87585\n",
      "2019-01-01 12:47:26,053 [INFO] 训练 21800, 回合 0.9215209000025838, 存储大小 50000, 损失 1.843081736296881e-05\n",
      "2019-01-01 12:47:28,889 [INFO] 回合 495, 步数 143, 奖励 0.0, 总步数 87729\n",
      "2019-01-01 12:47:46,110 [INFO] 回合 496, 步数 194, 奖励 1.0, 总步数 87924\n",
      "2019-01-01 12:48:01,724 [INFO] 训练 21900, 回合 0.9211609000025957, 存储大小 50000, 损失 0.0004008054092992097\n",
      "2019-01-01 12:48:05,744 [INFO] 回合 497, 步数 220, 奖励 2.0, 总步数 88145\n",
      "2019-01-01 12:48:18,927 [INFO] 回合 498, 步数 147, 奖励 0.0, 总步数 88293\n",
      "2019-01-01 12:48:31,873 [INFO] 回合 499, 步数 143, 奖励 0.0, 总步数 88437\n",
      "2019-01-01 12:48:37,637 [INFO] 训练 22000, 回合 0.9208009000026075, 存储大小 50000, 损失 3.973884668084793e-05\n",
      "2019-01-01 12:48:48,740 [INFO] 回合 500, 步数 190, 奖励 1.0, 总步数 88628\n",
      "2019-01-01 12:49:07,637 [INFO] 回合 501, 步数 211, 奖励 2.0, 总步数 88840\n",
      "2019-01-01 12:49:13,322 [INFO] 训练 22100, 回合 0.9204409000026194, 存储大小 50000, 损失 8.437071301159449e-06\n",
      "2019-01-01 12:49:19,738 [INFO] 回合 502, 步数 136, 奖励 0.0, 总步数 88977\n",
      "2019-01-01 12:49:31,834 [INFO] 回合 503, 步数 134, 奖励 0.0, 总步数 89112\n",
      "2019-01-01 12:49:48,381 [INFO] 回合 504, 步数 189, 奖励 1.0, 总步数 89302\n",
      "2019-01-01 12:49:48,752 [INFO] 训练 22200, 回合 0.9200809000026312, 存储大小 50000, 损失 0.015312910079956055\n",
      "2019-01-01 12:50:02,603 [INFO] 回合 505, 步数 159, 奖励 1.0, 总步数 89462\n",
      "2019-01-01 12:50:14,391 [INFO] 回合 506, 步数 134, 奖励 0.0, 总步数 89597\n",
      "2019-01-01 12:50:24,407 [INFO] 训练 22300, 回合 0.9197209000026431, 存储大小 50000, 损失 2.2085598175181076e-05\n",
      "2019-01-01 12:50:26,227 [INFO] 回合 507, 步数 131, 奖励 0.0, 总步数 89729\n",
      "2019-01-01 12:50:37,616 [INFO] 回合 508, 步数 128, 奖励 0.0, 总步数 89858\n",
      "2019-01-01 12:50:52,656 [INFO] 回合 509, 步数 168, 奖励 1.0, 总步数 90027\n",
      "2019-01-01 12:51:00,101 [INFO] 训练 22400, 回合 0.9193609000026549, 存储大小 50000, 损失 0.0003864757309202105\n",
      "2019-01-01 12:51:05,799 [INFO] 回合 510, 步数 148, 奖励 0.0, 总步数 90176\n",
      "2019-01-01 12:51:21,840 [INFO] 回合 511, 步数 182, 奖励 1.0, 总步数 90359\n",
      "2019-01-01 12:51:35,764 [INFO] 训练 22500, 回合 0.9190009000026668, 存储大小 50000, 损失 5.87402937526349e-05\n",
      "2019-01-01 12:51:38,026 [INFO] 回合 512, 步数 178, 奖励 1.0, 总步数 90538\n",
      "2019-01-01 12:51:50,404 [INFO] 回合 513, 步数 141, 奖励 0.0, 总步数 90680\n",
      "2019-01-01 12:52:02,531 [INFO] 回合 514, 步数 134, 奖励 0.0, 总步数 90815\n",
      "2019-01-01 12:52:11,559 [INFO] 训练 22600, 回合 0.9186409000026786, 存储大小 50000, 损失 1.602020529389847e-05\n",
      "2019-01-01 12:52:23,751 [INFO] 回合 515, 步数 237, 奖励 2.0, 总步数 91053\n",
      "2019-01-01 12:52:36,053 [INFO] 回合 516, 步数 139, 奖励 0.0, 总步数 91193\n",
      "2019-01-01 12:52:47,116 [INFO] 训练 22700, 回合 0.9182809000026905, 存储大小 50000, 损失 0.007813569158315659\n",
      "2019-01-01 12:52:54,328 [INFO] 回合 517, 步数 206, 奖励 1.0, 总步数 91400\n",
      "2019-01-01 12:53:10,643 [INFO] 回合 518, 步数 182, 奖励 1.0, 总步数 91583\n",
      "2019-01-01 12:53:22,699 [INFO] 训练 22800, 回合 0.9179209000027023, 存储大小 50000, 损失 0.0004506967670749873\n",
      "2019-01-01 12:53:25,558 [INFO] 回合 519, 步数 170, 奖励 1.0, 总步数 91754\n",
      "2019-01-01 12:53:45,696 [INFO] 回合 520, 步数 226, 奖励 2.0, 总步数 91981\n",
      "2019-01-01 12:53:58,068 [INFO] 训练 22900, 回合 0.9175609000027142, 存储大小 50000, 损失 1.7622376617509872e-05\n",
      "2019-01-01 12:53:59,927 [INFO] 回合 521, 步数 162, 奖励 1.0, 总步数 92144\n",
      "2019-01-01 12:54:19,385 [INFO] 回合 522, 步数 221, 奖励 2.0, 总步数 92366\n",
      "2019-01-01 12:54:33,685 [INFO] 训练 23000, 回合 0.917200900002726, 存储大小 50000, 损失 1.579401214257814e-05\n",
      "2019-01-01 12:54:36,609 [INFO] 回合 523, 步数 190, 奖励 1.0, 总步数 92557\n",
      "2019-01-01 12:54:54,715 [INFO] 回合 524, 步数 204, 奖励 2.0, 总步数 92762\n",
      "2019-01-01 12:55:06,925 [INFO] 回合 525, 步数 136, 奖励 0.0, 总步数 92899\n",
      "2019-01-01 12:55:09,397 [INFO] 训练 23100, 回合 0.9168409000027379, 存储大小 50000, 损失 0.007713051978498697\n",
      "2019-01-01 12:55:25,515 [INFO] 回合 526, 步数 206, 奖励 1.0, 总步数 93106\n",
      "2019-01-01 12:55:42,685 [INFO] 回合 527, 步数 193, 奖励 1.0, 总步数 93300\n",
      "2019-01-01 12:55:45,128 [INFO] 训练 23200, 回合 0.9164809000027497, 存储大小 50000, 损失 1.7630263755563647e-05\n",
      "2019-01-01 12:55:57,231 [INFO] 回合 528, 步数 164, 奖励 1.0, 总步数 93465\n",
      "2019-01-01 12:56:08,970 [INFO] 回合 529, 步数 134, 奖励 0.0, 总步数 93600\n",
      "2019-01-01 12:56:20,626 [INFO] 训练 23300, 回合 0.9161209000027616, 存储大小 50000, 损失 9.309810593549628e-06\n",
      "2019-01-01 12:56:20,681 [INFO] 回合 530, 步数 131, 奖励 0.0, 总步数 93732\n",
      "2019-01-01 12:56:33,429 [INFO] 回合 531, 步数 146, 奖励 0.0, 总步数 93879\n",
      "2019-01-01 12:56:47,325 [INFO] 回合 532, 步数 156, 奖励 1.0, 总步数 94036\n",
      "2019-01-01 12:56:56,199 [INFO] 训练 23400, 回合 0.9157609000027734, 存储大小 50000, 损失 0.015230118297040462\n",
      "2019-01-01 12:57:08,613 [INFO] 回合 533, 步数 240, 奖励 3.0, 总步数 94277\n",
      "2019-01-01 12:57:21,015 [INFO] 回合 534, 步数 138, 奖励 0.0, 总步数 94416\n",
      "2019-01-01 12:57:31,670 [INFO] 训练 23500, 回合 0.9154009000027853, 存储大小 50000, 损失 0.00043620230280794203\n",
      "2019-01-01 12:57:37,388 [INFO] 回合 535, 步数 185, 奖励 1.0, 总步数 94602\n",
      "2019-01-01 12:57:52,035 [INFO] 回合 536, 步数 163, 奖励 1.0, 总步数 94766\n",
      "2019-01-01 12:58:07,266 [INFO] 训练 23600, 回合 0.9150409000027971, 存储大小 50000, 损失 1.8864746380131692e-05\n",
      "2019-01-01 12:58:15,213 [INFO] 回合 537, 步数 262, 奖励 3.0, 总步数 95029\n",
      "2019-01-01 12:58:29,915 [INFO] 回合 538, 步数 162, 奖励 1.0, 总步数 95192\n",
      "2019-01-01 12:58:42,978 [INFO] 训练 23700, 回合 0.914680900002809, 存储大小 50000, 损失 7.978931535035372e-06\n",
      "2019-01-01 12:58:43,724 [INFO] 回合 539, 步数 158, 奖励 1.0, 总步数 95351\n",
      "2019-01-01 12:58:59,316 [INFO] 回合 540, 步数 173, 奖励 1.0, 总步数 95525\n",
      "2019-01-01 12:59:11,571 [INFO] 回合 541, 步数 137, 奖励 0.0, 总步数 95663\n",
      "2019-01-01 12:59:18,689 [INFO] 训练 23800, 回合 0.9143209000028208, 存储大小 50000, 损失 1.0519230272620916e-05\n",
      "2019-01-01 12:59:29,373 [INFO] 回合 542, 步数 202, 奖励 2.0, 总步数 95866\n",
      "2019-01-01 12:59:41,479 [INFO] 回合 543, 步数 136, 奖励 0.0, 总步数 96003\n",
      "2019-01-01 12:59:54,331 [INFO] 训练 23900, 回合 0.9139609000028327, 存储大小 50000, 损失 4.762221942655742e-05\n",
      "2019-01-01 12:59:55,468 [INFO] 回合 544, 步数 155, 奖励 1.0, 总步数 96159\n",
      "2019-01-01 13:00:06,865 [INFO] 回合 545, 步数 126, 奖励 0.0, 总步数 96286\n",
      "2019-01-01 13:00:18,018 [INFO] 回合 546, 步数 124, 奖励 0.0, 总步数 96411\n",
      "2019-01-01 13:00:30,203 [INFO] 训练 24000, 回合 0.9136009000028446, 存储大小 50000, 损失 1.8756200006464496e-05\n",
      "2019-01-01 13:00:30,239 [INFO] 目标网络已更新\n",
      "2019-01-01 13:00:30,249 [INFO] 回合 547, 步数 136, 奖励 0.0, 总步数 96548\n",
      "2019-01-01 13:00:41,616 [INFO] 回合 548, 步数 130, 奖励 0.0, 总步数 96679\n",
      "2019-01-01 13:01:04,349 [INFO] 回合 549, 步数 255, 奖励 3.0, 总步数 96935\n",
      "2019-01-01 13:01:05,745 [INFO] 训练 24100, 回合 0.9132409000028564, 存储大小 50000, 损失 0.0078022778034210205\n",
      "2019-01-01 13:01:22,797 [INFO] 回合 550, 步数 208, 奖励 2.0, 总步数 97144\n",
      "2019-01-01 13:01:38,742 [INFO] 回合 551, 步数 179, 奖励 1.0, 总步数 97324\n",
      "2019-01-01 13:01:41,234 [INFO] 训练 24200, 回合 0.9128809000028683, 存储大小 50000, 损失 2.3999553377507254e-05\n",
      "2019-01-01 13:02:16,752 [INFO] 训练 24300, 回合 0.9125209000028801, 存储大小 50000, 损失 1.183963831863366e-05\n",
      "2019-01-01 13:02:22,115 [INFO] 回合 552, 步数 491, 奖励 11.0, 总步数 97816\n",
      "2019-01-01 13:02:37,372 [INFO] 回合 553, 步数 172, 奖励 1.0, 总步数 97989\n",
      "2019-01-01 13:02:48,287 [INFO] 回合 554, 步数 124, 奖励 0.0, 总步数 98114\n",
      "2019-01-01 13:02:52,140 [INFO] 训练 24400, 回合 0.912160900002892, 存储大小 50000, 损失 0.0004349590453784913\n",
      "2019-01-01 13:03:02,297 [INFO] 回合 555, 步数 155, 奖励 1.0, 总步数 98270\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "2019-01-01 13:03:22,411 [INFO] 回合 556, 步数 227, 奖励 2.0, 总步数 98498\n",
      "2019-01-01 13:03:27,727 [INFO] 训练 24500, 回合 0.9118009000029038, 存储大小 50000, 损失 4.359880040283315e-05\n",
      "2019-01-01 13:03:40,839 [INFO] 回合 557, 步数 207, 奖励 2.0, 总步数 98706\n",
      "2019-01-01 13:03:58,330 [INFO] 回合 558, 步数 196, 奖励 2.0, 总步数 98903\n",
      "2019-01-01 13:04:03,333 [INFO] 训练 24600, 回合 0.9114409000029157, 存储大小 50000, 损失 7.627880222571548e-06\n",
      "2019-01-01 13:04:13,087 [INFO] 回合 559, 步数 165, 奖励 1.0, 总步数 99069\n",
      "2019-01-01 13:04:31,090 [INFO] 回合 560, 步数 200, 奖励 2.0, 总步数 99270\n",
      "2019-01-01 13:04:39,208 [INFO] 训练 24700, 回合 0.9110809000029275, 存储大小 50000, 损失 0.007810384035110474\n",
      "2019-01-01 13:04:50,972 [INFO] 回合 561, 步数 224, 奖励 2.0, 总步数 99495\n",
      "2019-01-01 13:05:02,690 [INFO] 回合 562, 步数 132, 奖励 0.0, 总步数 99628\n",
      "2019-01-01 13:05:14,715 [INFO] 训练 24800, 回合 0.9107209000029394, 存储大小 50000, 损失 5.626908387057483e-05\n",
      "2019-01-01 13:05:17,703 [INFO] 回合 563, 步数 169, 奖励 1.0, 总步数 99798\n",
      "2019-01-01 13:05:29,546 [INFO] 回合 564, 步数 133, 奖励 0.0, 总步数 99932\n",
      "2019-01-01 13:05:47,187 [INFO] [测试] 回合 0: 步骤 431, 奖励 0.0, 步数 431\n",
      "2019-01-01 13:05:53,009 [INFO] [测试] 回合 1: 步骤 233, 奖励 0.0, 步数 664\n",
      "2019-01-01 13:06:01,903 [INFO] [测试] 回合 2: 步骤 347, 奖励 0.0, 步数 1011\n",
      "2019-01-01 13:06:06,244 [INFO] [测试] 回合 3: 步骤 178, 奖励 0.0, 步数 1189\n",
      "2019-01-01 13:06:18,067 [INFO] [测试] 回合 4: 步骤 438, 奖励 0.0, 步数 1627\n",
      "2019-01-01 13:06:32,976 [INFO] [测试] 回合 5: 步骤 561, 奖励 1.0, 步数 2188\n",
      "2019-01-01 13:06:40,133 [INFO] [测试] 回合 6: 步骤 282, 奖励 3.0, 步数 2470\n",
      "2019-01-01 13:06:48,786 [INFO] [测试] 回合 7: 步骤 332, 奖励 0.0, 步数 2802\n",
      "2019-01-01 13:06:58,952 [INFO] [测试] 回合 8: 步骤 385, 奖励 1.0, 步数 3187\n",
      "2019-01-01 13:07:03,133 [INFO] [测试] 回合 9: 步骤 170, 奖励 0.0, 步数 3357\n",
      "2019-01-01 13:07:09,620 [INFO] [测试] 回合 10: 步骤 253, 奖励 0.0, 步数 3610\n",
      "2019-01-01 13:07:18,631 [INFO] [测试] 回合 11: 步骤 346, 奖励 0.0, 步数 3956\n",
      "2019-01-01 13:07:32,198 [INFO] [测试] 回合 12: 步骤 500, 奖励 3.0, 步数 4456\n",
      "2019-01-01 13:07:38,601 [INFO] [测试] 回合 13: 步骤 254, 奖励 1.0, 步数 4710\n",
      "2019-01-01 13:07:47,548 [INFO] [测试] 回合 14: 步骤 342, 奖励 0.0, 步数 5052\n",
      "2019-01-01 13:07:52,614 [INFO] [测试] 回合 15: 步骤 201, 奖励 2.0, 步数 5253\n",
      "2019-01-01 13:07:57,640 [INFO] [测试] 回合 16: 步骤 200, 奖励 0.0, 步数 5453\n",
      "2019-01-01 13:08:03,531 [INFO] [测试] 回合 17: 步骤 233, 奖励 0.0, 步数 5686\n",
      "2019-01-01 13:08:08,508 [INFO] [测试] 回合 18: 步骤 199, 奖励 2.0, 步数 5885\n",
      "2019-01-01 13:08:13,407 [INFO] [测试] 回合 19: 步骤 198, 奖励 2.0, 步数 6083\n",
      "2019-01-01 13:08:22,642 [INFO] [测试] 回合 20: 步骤 355, 奖励 0.0, 步数 6438\n",
      "2019-01-01 13:08:33,325 [INFO] [测试] 回合 21: 步骤 408, 奖励 0.0, 步数 6846\n",
      "2019-01-01 13:08:45,081 [INFO] [测试] 回合 22: 步骤 441, 奖励 0.0, 步数 7287\n",
      "2019-01-01 13:08:56,661 [INFO] [测试] 回合 23: 步骤 436, 奖励 0.0, 步数 7723\n",
      "2019-01-01 13:09:01,712 [INFO] [测试] 回合 24: 步骤 200, 奖励 2.0, 步数 7923\n",
      "2019-01-01 13:09:06,188 [INFO] [测试] 回合 25: 步骤 182, 奖励 0.0, 步数 8105\n",
      "2019-01-01 13:09:20,527 [INFO] [测试] 回合 26: 步骤 542, 奖励 0.0, 步数 8647\n",
      "2019-01-01 13:09:33,313 [INFO] [测试] 回合 27: 步骤 471, 奖励 0.0, 步数 9118\n",
      "2019-01-01 13:09:41,531 [INFO] [测试] 回合 28: 步骤 321, 奖励 0.0, 步数 9439\n",
      "2019-01-01 13:09:50,463 [INFO] [测试] 回合 29: 步骤 343, 奖励 0.0, 步数 9782\n",
      "2019-01-01 13:09:55,440 [INFO] [测试] 回合 30: 步骤 201, 奖励 2.0, 步数 9983\n",
      "2019-01-01 13:10:06,232 [INFO] [测试] 回合 31: 步骤 408, 奖励 0.0, 步数 10391\n",
      "2019-01-01 13:10:11,252 [INFO] [测试] 回合 32: 步骤 202, 奖励 2.0, 步数 10593\n",
      "2019-01-01 13:10:14,950 [INFO] [测试] 回合 33: 步骤 160, 奖励 0.0, 步数 10753\n",
      "2019-01-01 13:10:19,817 [INFO] [测试] 回合 34: 步骤 184, 奖励 0.0, 步数 10937\n",
      "2019-01-01 13:10:25,057 [INFO] [测试] 回合 35: 步骤 209, 奖励 0.0, 步数 11146\n",
      "2019-01-01 13:10:31,605 [INFO] [测试] 回合 36: 步骤 258, 奖励 0.0, 步数 11404\n",
      "2019-01-01 13:10:42,986 [INFO] [测试] 回合 37: 步骤 437, 奖励 1.0, 步数 11841\n",
      "2019-01-01 13:10:51,308 [INFO] [测试] 回合 38: 步骤 315, 奖励 0.0, 步数 12156\n",
      "2019-01-01 13:10:56,273 [INFO] [测试] 回合 39: 步骤 200, 奖励 2.0, 步数 12356\n",
      "2019-01-01 13:11:03,783 [INFO] [测试] 回合 40: 步骤 287, 奖励 0.0, 步数 12643\n",
      "2019-01-01 13:11:17,344 [INFO] [测试] 回合 41: 步骤 506, 奖励 1.0, 步数 13149\n",
      "2019-01-01 13:11:21,425 [INFO] [测试] 回合 42: 步骤 169, 奖励 0.0, 步数 13318\n",
      "2019-01-01 13:11:26,745 [INFO] [测试] 回合 43: 步骤 217, 奖励 0.0, 步数 13535\n",
      "2019-01-01 13:11:31,741 [INFO] [测试] 回合 44: 步骤 199, 奖励 2.0, 步数 13734\n",
      "2019-01-01 13:11:42,364 [INFO] [测试] 回合 45: 步骤 408, 奖励 2.0, 步数 14142\n",
      "2019-01-01 13:11:47,411 [INFO] [测试] 回合 46: 步骤 199, 奖励 2.0, 步数 14341\n",
      "2019-01-01 13:11:52,429 [INFO] [测试] 回合 47: 步骤 199, 奖励 2.0, 步数 14540\n",
      "2019-01-01 13:11:57,284 [INFO] [测试] 回合 48: 步骤 200, 奖励 2.0, 步数 14740\n",
      "2019-01-01 13:12:05,752 [INFO] [测试] 回合 49: 步骤 324, 奖励 0.0, 步数 15064\n",
      "2019-01-01 13:12:05,752 [INFO] [测试小结] 步数: 平均 = 301.28, 最小 = 160, 最大 = 561.\n",
      "2019-01-01 13:12:05,752 [INFO] [测试小结] 奖励: 平均 = 0.7, 最小 = 0.0, 最大 = 3.0\n",
      "2019-01-01 13:12:06,141 [INFO] 回合 565, 步数 69, 奖励 0.0, 总步数 100002\n",
      "2019-01-01 13:12:06,141 [INFO] 训练结束\n"
     ]
    }
   ],
   "source": [
    "agent = DQNAgent(env, input_shape=input_shape, batch_size=batch_size,\n",
    "        replay_memory_size=replay_memory_size,\n",
    "        learning_rate=learning_rate, gamma=gamma,\n",
    "        epsilon=epsilon, epsilon_decrease_rate=epsilon_decrease,\n",
    "        min_epsilon=min_epsilon, random_initial_steps=random_initial_steps,\n",
    "        load_path=load_path,\n",
    "        update_freq=update_freq,\n",
    "        target_network_update_freq=target_network_update_freq)\n",
    "\n",
    "logging.info(\"训练开始\")\n",
    "\n",
    "frame = 0\n",
    "max_mean_episode_reward = float(\"-inf\")\n",
    "for episode in itertools.count():\n",
    "    observation = env.reset()\n",
    "    episode_reward = 0\n",
    "    state = agent.get_next_state(None, observation)\n",
    "    for step in itertools.count():\n",
    "        if render:\n",
    "            env.render()\n",
    "        frame += 1\n",
    "        action = agent.decide(state, step=step)\n",
    "        observation, reward, done, _ = env.step(action)\n",
    "        next_state = agent.get_next_state(state, observation)\n",
    "        episode_reward += reward\n",
    "        agent.learn(state, action, reward, next_state, done)\n",
    "        \n",
    "        # 验证\n",
    "        if frame % test_freq == 0 or \\\n",
    "                (done and (frame + 1) % test_freq == 0):\n",
    "            test_episode_rewards = test(env=env,\n",
    "                    agent=agent, episodes=test_episodes, render=render)\n",
    "            if max_mean_episode_reward < np.mean(test_episode_rewards):\n",
    "                max_mean_episode_reward = np.mean(test_episode_rewards)\n",
    "                agent.save_network(save_path)\n",
    "                path = save_path[:-2] + str(agent.fit_count) + '.h5'\n",
    "                agent.save_network(path)\n",
    "        \n",
    "        if done:\n",
    "            step += 1\n",
    "            frame += 1\n",
    "            break\n",
    "        state = next_state\n",
    "    \n",
    "    logging.info(\"回合 {}, 步数 {}, 奖励 {}, 总步数 {}\".format(\n",
    "            episode, step, episode_reward, frame))\n",
    "    \n",
    "    if frame > frames:\n",
    "        break\n",
    "\n",
    "logging.info(\"训练结束\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "测试"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "2019-01-01 13:12:06,576 [INFO] 载入网络权重 ./output/BreakoutDeterministic-v4-20190123-100223/model.h5.\n",
      "_________________________________________________________________\n",
      "Layer (type)                 Output Shape              Param #   \n",
      "=================================================================\n",
      "permute_2 (Permute)          (None, 110, 84, 4)        0         \n",
      "_________________________________________________________________\n",
      "conv2d_6 (Conv2D)            (None, 26, 20, 32)        8224      \n",
      "_________________________________________________________________\n",
      "conv2d_7 (Conv2D)            (None, 12, 9, 64)         32832     \n",
      "_________________________________________________________________\n",
      "conv2d_8 (Conv2D)            (None, 10, 7, 64)         36928     \n",
      "_________________________________________________________________\n",
      "flatten_2 (Flatten)          (None, 4480)              0         \n",
      "_________________________________________________________________\n",
      "dense_4 (Dense)              (None, 512)               2294272   \n",
      "_________________________________________________________________\n",
      "dense_5 (Dense)              (None, 4)                 2052      \n",
      "=================================================================\n",
      "Total params: 2,374,308\n",
      "Trainable params: 2,374,308\n",
      "Non-trainable params: 0\n",
      "_________________________________________________________________\n",
      "2019-01-01 13:12:07,773 [INFO] 目标网络已更新\n",
      "2019-01-01 13:12:13,547 [INFO] [测试] 回合 0: 步骤 235, 奖励 3.0, 步数 235\n",
      "2019-01-01 13:12:19,127 [INFO] [测试] 回合 1: 步骤 227, 奖励 3.0, 步数 462\n",
      "2019-01-01 13:12:30,198 [INFO] [测试] 回合 2: 步骤 448, 奖励 3.0, 步数 910\n",
      "2019-01-01 13:12:41,132 [INFO] [测试] 回合 3: 步骤 447, 奖励 3.0, 步数 1357\n",
      "2019-01-01 13:12:56,462 [INFO] [测试] 回合 4: 步骤 622, 奖励 10.0, 步数 1979\n",
      "2019-01-01 13:13:09,830 [INFO] [测试] 回合 5: 步骤 545, 奖励 3.0, 步数 2524\n",
      "2019-01-01 13:13:17,681 [INFO] [测试] 回合 6: 步骤 320, 奖励 3.0, 步数 2844\n",
      "2019-01-01 13:13:26,033 [INFO] [测试] 回合 7: 步骤 335, 奖励 3.0, 步数 3179\n",
      "2019-01-01 13:13:37,360 [INFO] [测试] 回合 8: 步骤 461, 奖励 3.0, 步数 3640\n",
      "2019-01-01 13:13:48,676 [INFO] [测试] 回合 9: 步骤 459, 奖励 3.0, 步数 4099\n",
      "2019-01-01 13:13:57,022 [INFO] [测试] 回合 10: 步骤 344, 奖励 3.0, 步数 4443\n",
      "2019-01-01 13:14:02,929 [INFO] [测试] 回合 11: 步骤 240, 奖励 3.0, 步数 4683\n",
      "2019-01-01 13:14:11,483 [INFO] [测试] 回合 12: 步骤 349, 奖励 3.0, 步数 5032\n",
      "2019-01-01 13:14:20,338 [INFO] [测试] 回合 13: 步骤 357, 奖励 3.0, 步数 5389\n",
      "2019-01-01 13:14:30,294 [INFO] [测试] 回合 14: 步骤 410, 奖励 3.0, 步数 5799\n",
      "2019-01-01 13:14:42,308 [INFO] [测试] 回合 15: 步骤 489, 奖励 3.0, 步数 6288\n",
      "2019-01-01 13:14:48,142 [INFO] [测试] 回合 16: 步骤 235, 奖励 3.0, 步数 6523\n",
      "2019-01-01 13:14:57,131 [INFO] [测试] 回合 17: 步骤 362, 奖励 3.0, 步数 6885\n",
      "2019-01-01 13:15:11,827 [INFO] [测试] 回合 18: 步骤 596, 奖励 3.0, 步数 7481\n",
      "2019-01-01 13:15:23,151 [INFO] [测试] 回合 19: 步骤 467, 奖励 3.0, 步数 7948\n",
      "2019-01-01 13:15:30,998 [INFO] [测试] 回合 20: 步骤 314, 奖励 3.0, 步数 8262\n",
      "2019-01-01 13:15:43,020 [INFO] [测试] 回合 21: 步骤 486, 奖励 3.0, 步数 8748\n",
      "2019-01-01 13:15:54,934 [INFO] [测试] 回合 22: 步骤 490, 奖励 3.0, 步数 9238\n",
      "2019-01-01 13:16:03,382 [INFO] [测试] 回合 23: 步骤 345, 奖励 3.0, 步数 9583\n",
      "2019-01-01 13:16:09,843 [INFO] [测试] 回合 24: 步骤 265, 奖励 3.0, 步数 9848\n",
      "2019-01-01 13:16:17,025 [INFO] [测试] 回合 25: 步骤 283, 奖励 3.0, 步数 10131\n",
      "2019-01-01 13:16:25,628 [INFO] [测试] 回合 26: 步骤 351, 奖励 3.0, 步数 10482\n",
      "2019-01-01 13:16:31,206 [INFO] [测试] 回合 27: 步骤 225, 奖励 3.0, 步数 10707\n",
      "2019-01-01 13:16:40,682 [INFO] [测试] 回合 28: 步骤 381, 奖励 3.0, 步数 11088\n",
      "2019-01-01 13:16:48,019 [INFO] [测试] 回合 29: 步骤 302, 奖励 3.0, 步数 11390\n",
      "2019-01-01 13:16:58,453 [INFO] [测试] 回合 30: 步骤 430, 奖励 3.0, 步数 11820\n",
      "2019-01-01 13:17:08,245 [INFO] [测试] 回合 31: 步骤 399, 奖励 3.0, 步数 12219\n",
      "2019-01-01 13:17:18,845 [INFO] [测试] 回合 32: 步骤 431, 奖励 3.0, 步数 12650\n",
      "2019-01-01 13:17:26,813 [INFO] [测试] 回合 33: 步骤 326, 奖励 3.0, 步数 12976\n",
      "2019-01-01 13:17:38,490 [INFO] [测试] 回合 34: 步骤 479, 奖励 3.0, 步数 13455\n",
      "2019-01-01 13:17:44,270 [INFO] [测试] 回合 35: 步骤 238, 奖励 3.0, 步数 13693\n",
      "2019-01-01 13:17:56,494 [INFO] [测试] 回合 36: 步骤 494, 奖励 3.0, 步数 14187\n",
      "2019-01-01 13:18:04,319 [INFO] [测试] 回合 37: 步骤 314, 奖励 3.0, 步数 14501\n",
      "2019-01-01 13:18:15,498 [INFO] [测试] 回合 38: 步骤 449, 奖励 3.0, 步数 14950\n",
      "2019-01-01 13:18:26,832 [INFO] [测试] 回合 39: 步骤 464, 奖励 3.0, 步数 15414\n",
      "2019-01-01 13:18:34,752 [INFO] [测试] 回合 40: 步骤 325, 奖励 3.0, 步数 15739\n",
      "2019-01-01 13:18:41,386 [INFO] [测试] 回合 41: 步骤 270, 奖励 3.0, 步数 16009\n",
      "2019-01-01 13:18:51,706 [INFO] [测试] 回合 42: 步骤 417, 奖励 3.0, 步数 16426\n",
      "2019-01-01 13:18:58,855 [INFO] [测试] 回合 43: 步骤 297, 奖励 3.0, 步数 16723\n",
      "2019-01-01 13:19:09,490 [INFO] [测试] 回合 44: 步骤 427, 奖励 3.0, 步数 17150\n",
      "2019-01-01 13:19:17,187 [INFO] [测试] 回合 45: 步骤 317, 奖励 3.0, 步数 17467\n",
      "2019-01-01 13:19:25,074 [INFO] [测试] 回合 46: 步骤 320, 奖励 3.0, 步数 17787\n",
      "2019-01-01 13:19:33,760 [INFO] [测试] 回合 47: 步骤 350, 奖励 3.0, 步数 18137\n",
      "2019-01-01 13:19:41,134 [INFO] [测试] 回合 48: 步骤 296, 奖励 3.0, 步数 18433\n",
      "2019-01-01 13:19:51,143 [INFO] [测试] 回合 49: 步骤 408, 奖励 3.0, 步数 18841\n",
      "2019-01-01 13:19:51,147 [INFO] [测试小结] 步数: 平均 = 376.82, 最小 = 225, 最大 = 622.\n",
      "2019-01-01 13:19:51,151 [INFO] [测试小结] 奖励: 平均 = 3.14, 最小 = 3.0, 最大 = 10.0\n",
      "平均回合奖励 = 3.14\n"
     ]
    }
   ],
   "source": [
    "test_agent = DQNAgent(env, input_shape=input_shape, load_path=save_path)\n",
    "test_episode_rewards = test(env, test_agent, episodes=test_episodes)\n",
    "print('平均回合奖励 = {}'.format(np.mean(test_episode_rewards)))"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
